59
submitted 3 days ago by [email protected] to c/[email protected]

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.

top 27 comments
sorted by: hot top new old
[-] [email protected] 1 points 11 hours ago

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.

[-] [email protected] 1 points 20 hours ago

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.

[-] [email protected] 1 points 1 day ago* (last edited 1 day ago)

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 to cgroup, add iptables-service-type to your services, add rootless-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 install distrobox first, you don't end up using rootless podman and you run into more problems that way. (You have to use distrobox --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
[-] [email protected] 2 points 1 day ago

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.

[-] [email protected] 1 points 1 day ago

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 plus distrobox assemble for this kind of workflow, but of course this isn't totally reproducible.

[-] [email protected] 0 points 14 hours ago

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.

[-] [email protected] 1 points 14 hours ago* (last edited 14 hours ago)

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!

[-] [email protected] 1 points 9 hours ago

thats it :) Now you need to pin package versions to guix versions via inferior so that you can share the manifest and be sure you have exact same stuff on the other machine. Otherwise the specified packages get updated everytime you update your system. I learned that the hard way by having to wait for latex to download everytime I updated my system.

[-] [email protected] 2 points 23 hours ago

Also, welcome to Guix System Distribution, I hope you stick around

[-] [email protected] 1 points 23 hours ago

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

[-] [email protected] 4 points 2 days ago

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 :D

[-] [email protected] 1 points 8 hours ago* (last edited 8 hours ago)

I've also wanted to try out Guix for a while.. part of the reason I'm leaving a comment is just so I can recheck these posts later :P

But when I do I for sure will start out from nonguix because I'm quite confident that my hardware won't be supported (I even have a recently purchased Wifi 7 card that relies on ath12k module that I'm quite sure won't be in the official Guix repo.. maybe I'd even need to compile it myself..)

I see in the nonguix readme that there's a way to generate an iso that includes already a nonguix kernel, so I'll have a look at that.

It even looks like you can create a writeable image to run from a USB thumbdrive, which looks very interesting, I gotta try that!

guix system image --image-size=7.2GiB /path/to/this/channel/nongnu/system/install.scm
dd if=/path/to/disk-image of=/dev/sdb-or-whichever-drive-is-usb bs=4M status=progress oflag=sync

I've been burnt by Arch before which is what has got me into exploring other distros. I might ultimately end up again in Arch like you, who knows, but it looks like the way Guix works is well suited for hosting your own repo too.. I think I've seen before someone hosting their own Guix repo in github, including also a bunch of configuration for their system, which got me curious.

[-] [email protected] 1 points 23 hours ago

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.

[-] [email protected] 1 points 15 hours ago

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 👻

[-] [email protected] 2 points 2 days ago

Hardware must be well supported in fully-libre-land ... had to go nonguix pretty much right away.

Yep, same here. I started with nonguix. I didn't realize it was easy to add additional channels.

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.

Aaaah. I juuuust had this happen to me. Took me a bit to balance the parens again! 😂 Although, so far Scheme seems nicer than Nixlang. I've also had curiosity to learn a functional language, so Guix gives me a reason to learn about functional programming.

[-] [email protected] 13 points 3 days ago* (last edited 3 days ago)

Expect a steep learning curve even if you know Linux inside out. Don't assume things work the way they did on Arch (or most other distros). If your hardware doesn't work well, or you otherwise need some proprietary stuff, check out https://gitlab.com/nonguix/nonguix. Good luck!

[-] [email protected] 1 points 2 days ago

Yep. Totally using nonguix. I'm trying out Guix for the reproducibility and system management, not (just) for the FOSS software.

From my initial research, I thought that Guix was only going to allow 100% FOSS software. But I've learned that's not the case. It's actually pretty easy to add additional channels in order to install non-FOSS software. The third-party channels integrate nicely!

I added nonguix and also a channel for Tailscale!

(list (channel
        (name 'nonguix)
        (url "https://gitlab.com/nonguix/nonguix")
        (branch "master")
        (introduction
          (make-channel-introduction
            "897c1a470da759236cc11798f4e0a5f7d4d59fbc"
            (openpgp-fingerprint
              "2A39 3FFF 68F4 EF7A 3D29  12AF 6F51 20A0 22FB B2D5"))))
      (channel
        (name 'tailscale)
        (url "https://github.com/umanwizard/guix-tailscale")
        (branch "main")
        (introduction
          (make-channel-introduction
            "c72e15e84c4a9d199303aa40a81a95939db0cfee"
            (openpgp-fingerprint
              "9E53FC33B8328C745E7B31F70226C10D7877B741"))))
      (channel
        (name 'guix)
        (url "https://git.savannah.gnu.org/git/guix.git")
        (branch "master")
        (introduction
          (make-channel-introduction
            "9edb3f66fd807b096b48283debdcddccfea34bad"
            (openpgp-fingerprint
              "BBB0 2DDF 2CEA F6A8 0D1D  E643 A2A0 6DF2 A33A 54FA")))))
[-] [email protected] 6 points 2 days ago

I use nix for any packages I can't get from guix repos. So that's an option too.

[-] [email protected] 2 points 2 days ago

Could you share how you do that? It didn't work last time I tried it (using Nix on top of Guix).

[-] [email protected] 1 points 23 hours ago

You have to setup a Nix service and do some symlink-ing

https://guix.gnu.org/manual/en/html_node/Miscellaneous-Services.html

[-] [email protected] 2 points 2 days ago* (last edited 2 days ago)

I've not used Guix but I don't think any distro has anything close to number of desirable available packages as arch--- so be prepared for that. My ventures into debian, suse and fedora were made quite annoying by having to work around the many missing packages. Including user-facing applications, dependencies and background programs. I never quite got down with distrobox, maybe that's the cure.

this chart on wikipedia gives the impression that Debian has more packages but that's not the way it feels when you are looking for something. Maybe they have a lot of dot matrix printer libraries from 1992 or something which bring the number up.

Arch includes a lot of not-at-all-free packages (which it is impossible to distinguish in pacman or other tool as far as I can find), orphaned, new packages that haven't yet made it into other repos, and packages where no attempt has been made to submit them to other repos.

On arch I have virtually never had to go outside the repos for packages. It's very hard to give up once you are used to it. (Even though it's better to use properly libre/free stuff and other benefits of a more curated approach like security, stability and quality.)

[-] [email protected] 2 points 2 days ago

I’ve not used Guix but I don’t think any distro has anything close to number of desirable available packages as arch— so be prepared for that

nixpkgs would like a word

[-] [email protected] 4 points 2 days ago

The thing about Guix (and Nix) is that there doesnt need to be a package in the repos. You can either make your system automatically compile from source (which is how many AUR packages work) or use something like distrobox, bottles, flatpak to run extra software

[-] [email protected] 3 points 2 days ago

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%20Guix

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. (Using guix 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.

[-] [email protected] 1 points 1 day ago

Btw, here's the guix home configuration file I used to add the contents of flatpak.sh into my ~/.profile, in order to update the XDG_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"))))))
[-] [email protected] 3 points 2 days ago

FYI Hetzner VPS have a 1 click install for guix if you just want to try it out.

[-] [email protected] 2 points 2 days ago

Neat. Although, I wanted to go through the installation ~~pain~~ experience. Eventually, I'm hoping to run Guix on a server. I'm starting with my laptop first.

this post was submitted on 06 Jul 2025
59 points (98.4% liked)

Linux

56168 readers
1040 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 6 years ago
MODERATORS