Installing Guix as a Complete GNU/Linux System - System Crafters
-
Trying out Guix for the first time! Waiting for packages to download.
I'm a long time Arch user. Any tips?!
I've heard there aren't as many packages for Guix as other distros, but I was thinking Flatpak and distrobox will help bridge the gap for me.
I love it especially because of the guix shell and guix shell container for dev environment isolation. It is a whole different ecosystem from the ground up though so it's not an easy ride. But those two features make it worth it for me. Also it's GNU distro which imo is a plus.
-
I love it especially because of the guix shell and guix shell container for dev environment isolation. It is a whole different ecosystem from the ground up though so it's not an easy ride. But those two features make it worth it for me. Also it's GNU distro which imo is a plus.
guix shell and guix shell container for dev environment isolation
Yeah! This is one of the features I'm most interested in. I haven't gotten to using this feature yet, but I was curious about it.
Let's say I'm working on a project that requires Go, Node, maybe some C library, and GNU Make. Seems like I would be able to use
guix shell
for this, right? Great.Now if a friend wanted to work on the project, could I share my
guix shell
configuration with him? (Assuming he's also a Guix user.)I'm currently using
distrobox.ini
plusdistrobox assemble
for this kind of workflow, but of course this isn't totally reproducible. -
use something like distrobox, bottles, flatpak to run extra software
YES! That's my plan! I think I just figured out how to configure
flakpak
a little better.These are only part of the steps needed: https://flatpak.org/setup/GNU Guix
You also need to source
~/.guix-profile/etc/profile.d/flatpak.sh
in order to get the desktop icons to show up in the GNOME app launcher. (Usingguix home
for that!)Need to work on getting distrobox setup next. I was able to
guix install distrobox
, but it requires some extra configuration apparently.Btw, here's the
guix home
configuration file I used to add the contents offlatpak.sh
into my~/.profile
, in order to update theXDG_DATA_HOME
env var.(use-modules (gnu home) (gnu home services shells) (guix gexp) (gnu services)) (home-environment (services (list (simple-service 'flatpak-service home-shell-profile-service-type (list (local-file (string-append (getenv "HOME") "/.guix-profile/etc/profile.d/flatpak.sh") "flatpak.sh"))))))
-
Trying out Guix for the first time! Waiting for packages to download.
I'm a long time Arch user. Any tips?!
I've heard there aren't as many packages for Guix as other distros, but I was thinking Flatpak and distrobox will help bridge the gap for me.
wrote last edited by [email protected]Btw, here's how you install distrobox on Guix.
First, install rootless Podman: https://guix.gnu.org/manual/devel/en/html_node/Miscellaneous-Services.html#Rootless-Podman-Service.
You need to edit your
/etc/config.scm
or where ever you store your system config. Import the right modules/services, add your user tocgroup
, addiptables-service-type
to yourservices
, addrootless-podman-service-type
and configure it.(use-service-modules containers networking …) (use-modules (gnu system accounts)) ;for 'subid-range' (operating-system ;; … (users (cons (user-account (name "alice") (comment "Bob's sister") (group "users") ;; Adding the account to the "cgroup" group ;; makes it possible to run podman commands. (supplementary-groups '("cgroup" "wheel" "audio" "video"))) %base-user-accounts)) (services (append (list (service iptables-service-type) (service rootless-podman-service-type (rootless-podman-configuration (subgids (list (subid-range (name "alice")))) (subuids (list (subid-range (name "alice"))))))) %base-services)))
Then of course you run
guix system reconfigure /etc/config.scm
.Now you can do a simple
guix install distrobox
. If you installdistrobox
first, you don't end up using rootless podman and you run into more problems that way. (You have to usedistrobox --root
.)After that command, everything should work like normal. Enjoy.
distrobox create --image docker.io/library/archlinux:latest --name arch-dev distrobox enter arch-dev
-
guix shell and guix shell container for dev environment isolation
Yeah! This is one of the features I'm most interested in. I haven't gotten to using this feature yet, but I was curious about it.
Let's say I'm working on a project that requires Go, Node, maybe some C library, and GNU Make. Seems like I would be able to use
guix shell
for this, right? Great.Now if a friend wanted to work on the project, could I share my
guix shell
configuration with him? (Assuming he's also a Guix user.)I'm currently using
distrobox.ini
plusdistrobox assemble
for this kind of workflow, but of course this isn't totally reproducible.Let's say I'm working on a project that requires Go, Node, maybe some C library, and GNU Make. Seems like I would be able to use
guix shell
for this, right? Great.Iirc guix shell is for one off package or programs you want to test, say you want to quickly format a drive to exfat or so, when you exit the sub-shell, the installed packages are discarded
guix shell containers would work best for your scenario but I have little experience with them
-
guix shell and guix shell container for dev environment isolation
Yeah! This is one of the features I'm most interested in. I haven't gotten to using this feature yet, but I was curious about it.
Let's say I'm working on a project that requires Go, Node, maybe some C library, and GNU Make. Seems like I would be able to use
guix shell
for this, right? Great.Now if a friend wanted to work on the project, could I share my
guix shell
configuration with him? (Assuming he's also a Guix user.)I'm currently using
distrobox.ini
plusdistrobox assemble
for this kind of workflow, but of course this isn't totally reproducible.Also, welcome to Guix System Distribution, I hope you stick around
-
I quit on day two with two takeaways:
– Hardware must be well supported in fully-libre-land - I was trying to install on a Mac Mini and had to go nonguix pretty much right away. That kind of spoiled the whole effort.
– Profound meditation and enlightenment on the essence of Scheme is a must. I had one of those 'no, this is where you don't want a closing brace' moments and my zen was blown out of the water.
I would have soldiered on, but personally I like Arch first and foremost because I can (and do) have a local repo by rsyncing a rotation of mirrors couple of times a week. Just in case the Internet dies one day, you know. I realised Guix was not really suitable for the apocalypse use case, so after that brace episode I decided to stick with what my spine already knows.
After all that is said – I really hope you fare better
personally I like Arch first and foremost because I can (and do) have a local repo by rsyncing a rotation of mirrors couple of times a week.
Are these mirrors for prebuilt packages? If not, you should be able to pull from other channels, create your own channel and include all your packages while building them locally.
-
Could you share how you do that? It didn't work last time I tried it (using Nix on top of Guix).
You have to setup a Nix service and do some symlink-ing
https://guix.gnu.org/manual/en/html_node/Miscellaneous-Services.html
-
Trying out Guix for the first time! Waiting for packages to download.
I'm a long time Arch user. Any tips?!
I've heard there aren't as many packages for Guix as other distros, but I was thinking Flatpak and distrobox will help bridge the gap for me.
Btw, here's how you configure HiDPI for GNOME. Unfortunately, my laptop has a hydeepeeay display, so it's not fully compatible with Linux. (It's 3840x2160, so at least 2x scaling is possible, hypothetically.)
Commands from the Arch Wiki, but also adds cursor scaling:
$ gsettings set org.gnome.settings-daemon.plugins.xsettings overrides "[{'Gdk/WindowScalingFactor', <2>}, {'Gtk/CursorThemeSize', <48>}]" $ gsettings set org.gnome.desktop.interface scaling-factor 2
The default GNOME configuration is some how missing that. I didn't have to do that in Arch, but I do in Guix. IDK. Anyway, if you don't run those commands certain apps will be tiny, including a tiny mouse cursor.
-
personally I like Arch first and foremost because I can (and do) have a local repo by rsyncing a rotation of mirrors couple of times a week.
Are these mirrors for prebuilt packages? If not, you should be able to pull from other channels, create your own channel and include all your packages while building them locally.
Sure, but then I'd be downloading every single source 'package' and compiling for both x86 and ARM - not exactly feasible. Keeping just the sources might be an option though. The point is to have the whole repo, not just the packages I use, so that in the SHTF scenario I can help others install Arch and any software they may need on their machines. Muhahaha, Arch will prevail
-
guix shell and guix shell container for dev environment isolation
Yeah! This is one of the features I'm most interested in. I haven't gotten to using this feature yet, but I was curious about it.
Let's say I'm working on a project that requires Go, Node, maybe some C library, and GNU Make. Seems like I would be able to use
guix shell
for this, right? Great.Now if a friend wanted to work on the project, could I share my
guix shell
configuration with him? (Assuming he's also a Guix user.)I'm currently using
distrobox.ini
plusdistrobox assemble
for this kind of workflow, but of course this isn't totally reproducible.yes, you would share with him guix manifest which is a file that specifies which packages should be present. What is important to note are inferiors which is a mechanism to version lock the packages.
-
yes, you would share with him guix manifest which is a file that specifies which packages should be present. What is important to note are inferiors which is a mechanism to version lock the packages.
wrote last edited by [email protected]share with him guix manifest
Aaaah: https://guix.gnu.org/manual/devel/en/html_node/Writing-Manifests.html
# Write a manifest for the packages specified on the command line. guix shell --export-manifest gcc-toolchain make git > manifest.scm
Heck yeah!
-
I want to love Guix (both the package manager and the distro). I want to love Scheme. But I can never find any good tutorials for Scheme and using it with Guix. The GNU documentation is more of a reference than a tutorial. I use Emacs on the daily, and I just can't get into Scheme.
-
I want to love Guix (both the package manager and the distro). I want to love Scheme. But I can never find any good tutorials for Scheme and using it with Guix. The GNU documentation is more of a reference than a tutorial. I use Emacs on the daily, and I just can't get into Scheme.
I use Emacs on the daily, and I just can’t get into Scheme.
Do you find that Elisp and Scheme are too different? I don't know either, so they look almost the same to me.
-
I use Emacs on the daily, and I just can’t get into Scheme.
Do you find that Elisp and Scheme are too different? I don't know either, so they look almost the same to me.
@[email protected] I mean... I don't really fully understand Elisp either, despite my Emacs config being 10 years old!