View previous topic :: View next topic |
Author |
Message |
crocket Guru

Joined: 29 Apr 2017 Posts: 558
|
Posted: Tue Mar 01, 2022 1:24 pm Post subject: How does GNU Guix System compare with Gentoo Linux? |
|
|
I may gladly use gentoo linux without a problem if I had the latest CPUs and 64GB RAM, but I don't have them.
What I discovered is that 32GB RAM is just enough for building web browsers with tmpfs on /var/tmp/portage.
I'm tired of waiting for a day to build various web browsers every week or two. I'm tired of perl-cleaner and haskell-updater.
If I didn't obsess with USE flags, GNU Guix System looks like a fine alternative to gentoo linux.
binary builds are available for official Guix packages. Guix automatically builds packages for which there is no binary build.
Guix is flexible enough to allow local repository and third party repositories.
Arch Linux doesn't have a notion of source packages. pacman is not convenient for package maintainers.
The system configuration is written in guile scheme. Packages are also written in guile scheme.
I prefer guile scheme to bash scripts. I hate writing bash for OpenRC init scripts and gentoo packages.
On Guix system, even init scripts are written in guile scheme.
One of the major reasons I moved to gentoo was to avoid some problematic redhat softwares. Not all redhat softwares are as problematic as systemd and pulseaudio.
With the advent of pipewire, I can avoid pulseaudio's broken abstractions and say goodbye to bare ALSA.
I think artix linux and guix system achieve baseline independence from redhat and big tech.
Has anyone used guix system? |
|
Back to top |
|
 |
carcajou Apprentice


Joined: 10 Jun 2008 Posts: 256
|
Posted: Tue Mar 01, 2022 2:54 pm Post subject: |
|
|
I used it daily as VM guest for quite some time. Some remarks, randomly without specific order:
1) it's a steep learning curve at the very beginning. Default manual is quite good, however Google-fu usually does not give you an answer for the issue you might have. Most of the issues I actually managed to solve by simply reading docs and trial-and-error;
2) transactional upgrades and rollbacks are really incredible feature;
3) GUIX system is Free Software oriented, so it uses Libre kernel and Icecat/Icedove and proprietary software is unavailable. There is non-free Guix channel (unofficial) with regular vanilla kernel and proprietary drivers, Steam etc. I had fine experience with it, but I read other people experiences and usually there are many issues. Also, non-free channel usually lacks substitutes (binary packages availability), so everything is built from source (that includes Firefox);
4) with build time customization and optimization I did not encounter that much, but "guix build" allows parallel jobs;
5) if you need vanilla kernel for the installation, you have to use non-guix channel and build customs iso/img;
6) package availability is usually not that good, I temporarily solved it by using nix-service (nix-service-type);
7) coming from Gentoo, package transformation options were interesting for me: https://guix.gnu.org/manual/en/html_node/Package-Transformation-Options.html
packages on stable branch are usually little bit behind current upstream versions;
9) it is stable (especially when you take into account rollbacks), but I did have mostly minor annoyances after some upgrades. Also, occasional upgrades and new software installs may fail;
10) it requires maintenance and cleaning over time (after upgrades), especially if you install a lot of software. So base install and disk usage can get quite big. No big deal, just a note;
11) really like that you can have system level declaration and then install userland as regular user;
12) declarative approach is amazing, you can forget about editing /etc files (except the system declaration), but it takes time go get actually proficient;
I am not using this VM anymore. On top of my experience, I found Guix System an overkill for my use case. Also, considering lack of time, I was not ready to move it to bare metal. |
|
Back to top |
|
 |
sam_ Developer


Joined: 14 Aug 2020 Posts: 2381
|
Posted: Tue Mar 01, 2022 11:57 pm Post subject: Re: How does GNU Guix System compare with Gentoo Linux? |
|
|
crocket wrote: | I may gladly use gentoo linux without a problem if I had the latest CPUs and 64GB RAM, but I don't have them.
What I discovered is that 32GB RAM is just enough for building web browsers with tmpfs on /var/tmp/portage.
I'm tired of waiting for a day to build various web browsers every week or two. I'm tired of perl-cleaner and haskell-updater.
|
To be fair, you can use firefox-bin, google-chrome, opera, brave, ...., right now.
As for perl-cleaner, you shouldn't really need to run this anymore unless you change flags on Perl. At most,
run it after every major Perl upgrade (for which I think we're going to try do a news item, we did it last time).
crocket wrote: |
If I didn't obsess with USE flags, GNU Guix System looks like a fine alternative to gentoo linux.
binary builds are available for official Guix packages. Guix automatically builds packages for which there is no binary build.
|
We're working on getting some better binpkg offerings for "power/customisation/control when you need it, binaries when you don't".
crocket wrote: |
The system configuration is written in guile scheme. Packages are also written in guile scheme.
I prefer guile scheme to bash scripts. I hate writing bash for OpenRC init scripts and gentoo packages.
On Guix system, even init scripts are written in guile scheme.
|
Not much we can do about that, indeed. Although OpenRC init scripts are specifically not bash (they're POSIX shell). I'm not sure, but I think GNU Shephard (Guix's init system) is in theory usable on other distributions.
crocket wrote: |
I think artix linux and guix system achieve baseline independence from redhat and big tech.
|
I think Artix is likely to have the same issues as you mentioned for Arch, just without systemd. You still have OpenRC and the same package manager. |
|
Back to top |
|
 |
figueroa Advocate


Joined: 14 Aug 2005 Posts: 3020 Location: Edge of marsh USA
|
Posted: Wed Mar 02, 2022 5:19 am Post subject: |
|
|
I think you overstate the problem. I've never had a bleeding edge computer with 32GB RAM. My "new" primary desktop is 12 years old with 16GB RAM and spinning rust storage. I currently also maintain older full systems, with 8GB (one), and 4GB (several) RAM. These systems are never out-of-service because of compiling.
The SMALL and niche Guix project, though interesting, doesn't stack up well to Gentoo in maturity, breadth, or depth. I've not used it, but read about it and read through their web site information and I found nothing compelling for me. _________________ Andy Figueroa
hp pavilion hpe h8-1260t/2AB5; spinning rust x3
i7-2600 @ 3.40GHz; 16 gb; Radeon HD 7570
amd64/23.0/split-usr/desktop (stable), OpenRC, -systemd -pulseaudio -uefi |
|
Back to top |
|
 |
crocket Guru

Joined: 29 Apr 2017 Posts: 558
|
Posted: Wed Mar 02, 2022 1:31 pm Post subject: |
|
|
I can afford to use gentoo linux on my main desktop system. But, for secondary systems that have less than 8GB RAM and slow CPUs, I avoid gentoo linux.
I really can't spend time on secondary systems.
For secondary systems, I use artix linux for now. It's easy to get artix linux up and running quickly and maintain it. But, I don't like AUR and pacman. On secondary systems, guix system may serve better. |
|
Back to top |
|
 |
Zucca Moderator


Joined: 14 Jun 2007 Posts: 4119 Location: Rasi, Finland
|
Posted: Wed Mar 02, 2022 2:35 pm Post subject: |
|
|
I came here to add a note to lessen the (possible) confusion:- Guix is a shortened name for, both, a package manager and a distribution.
- GNU Guix is the package manager.
- GNU Guix System is the distribution.
... although at this point it shouldn't matter much as (afaik) there's no other distribution using GNU Guix (the package manager) other than GNU Guix System -distribution. _________________ ..: Zucca :..
My gentoo installs: | init=/sbin/openrc-init
-systemd -logind -elogind seatd |
Quote: | I am NaN! I am a man! |
|
|
Back to top |
|
 |
dmpogo Advocate

Joined: 02 Sep 2004 Posts: 3520 Location: Canada
|
Posted: Wed Mar 02, 2022 10:01 pm Post subject: |
|
|
My 3 Gentoo systems have 4GB, 12GB, and 16GB RAM ( laptop is the largest ), and all compile the packages that they use.
Except big guys which now have rolling releases, like browsers and rust, for which there are -bin packages. Given that all of them already
have zoom, skype, teams only available as binaries, browsers can go along in that pile.
perl-cleaner ? Haven't had to use it in years. |
|
Back to top |
|
 |
crocket Guru

Joined: 29 Apr 2017 Posts: 558
|
Posted: Wed Mar 02, 2022 10:58 pm Post subject: |
|
|
dmpogo wrote: | My 3 Gentoo systems have 4GB, 12GB, and 16GB RAM ( laptop is the largest ), and all compile the packages that they use.
Except big guys which now have rolling releases, like browsers and rust, for which there are -bin packages. Given that all of them already
have zoom, skype, teams only available as binaries, browsers can go along in that pile.
perl-cleaner ? Haven't had to use it in years. |
There is still sys-devel/gcc which I really don't want to compile on slow computers that I can't spend time on.
On slow computers that you can't spend much time on, gentoo linux sucks. It's not something you use when you are under time pressure.
Artix Linux is for low maintenance computers that run just a web browser.
I think guix system could serve me better on my main computer. If it doesn't now, it may in a few years. |
|
Back to top |
|
 |
figueroa Advocate


Joined: 14 Aug 2005 Posts: 3020 Location: Edge of marsh USA
|
Posted: Thu Mar 03, 2022 3:24 am Post subject: |
|
|
Giving excess weight to the fact that large packages like GCC take a long time to compile on low resource machines is missing the point that users should not be watching the console or window while compiling. Either continue working on other things or go do something else. It's a computer and it will take care of itself. If it needs attending at some point, it will wait for you. _________________ Andy Figueroa
hp pavilion hpe h8-1260t/2AB5; spinning rust x3
i7-2600 @ 3.40GHz; 16 gb; Radeon HD 7570
amd64/23.0/split-usr/desktop (stable), OpenRC, -systemd -pulseaudio -uefi |
|
Back to top |
|
 |
skiwarz Apprentice

Joined: 23 Feb 2014 Posts: 279
|
Posted: Thu Mar 03, 2022 4:39 am Post subject: |
|
|
figueroa wrote: | Giving excess weight to the fact that large packages like GCC take a long time to compile on low resource machines is missing the point that users should not be watching the console or window while compiling. Either continue working on other things or go do something else. It's a computer and it will take care of itself. If it needs attending at some point, it will wait for you. |
Very true. I like to do my updates/compiling at night, so when I wake up, I don't even care how long it took because it's done.
Continuing the trend of bragging about specs, I'm using a celeron N2840 with 2G ram and a 32G emmc. It's a bit slow, yes, but it compiles everything itself (mostly). I do use firefox-bin and libreoffice-bin though. |
|
Back to top |
|
 |
crocket Guru

Joined: 29 Apr 2017 Posts: 558
|
Posted: Thu Mar 03, 2022 9:22 am Post subject: |
|
|
figueroa wrote: | Giving excess weight to the fact that large packages like GCC take a long time to compile on low resource machines is missing the point that users should not be watching the console or window while compiling. Either continue working on other things or go do something else. It's a computer and it will take care of itself. If it needs attending at some point, it will wait for you. |
I don't just manage my own computers. I also manage my father's computer. Because my father can do whatever he likes with his computer, I have to end maintenance quickly.
Artix Linux is good for minimizing maintenance.
And, on slow machines, having to keep an update in mind for hours and days drains my mental energy. I wouldn't want to do it for slow machines. Especially, my father's computer where it can take at least a day to update gentoo linux system without compiling web browsers.
You guys haven't considered the fact that my main computer is in my sleeping room. Sleeping with computer fan noise is a form of torture. It can be done, but it is painful. Sometimes, I have to sleep with fan noise necessitated by emerge.
On days when system update requires troubleshooting error messages from emerge for hours, I'm really frustrated.
Emerge tends to drain my time from time to time. It is really draining my creative energy.
Emerge error messages can be cryptic. Spending hours on troubleshooting emerge when I have other things to do is really bad.
I certainly don't have time to troubleshoot emerge error messages from several different computers.
Gentoo linux isn't for every machine or everyone. It certainly isn't for every machine that I manage.
Gentoo can be okay for relatively fast computers that you have exclusive physical control over. But, as I wrote, I prefer guile scheme to shell script which I have to write for OpenRC init scripts and gentoo packages. |
|
Back to top |
|
 |
Zucca Moderator


Joined: 14 Jun 2007 Posts: 4119 Location: Rasi, Finland
|
Posted: Thu Mar 03, 2022 2:04 pm Post subject: |
|
|
I tend to install some really stable distros for my relatives. For example CentOS or nowdays Rocky Linux.
If you like Artix, then you'd probably also like Void. Void uses runit instead of OpenRC/systemd. Void also has musl variant install instead of glibc. _________________ ..: Zucca :..
My gentoo installs: | init=/sbin/openrc-init
-systemd -logind -elogind seatd |
Quote: | I am NaN! I am a man! |
|
|
Back to top |
|
 |
Dr.Willy Guru

Joined: 15 Jul 2007 Posts: 547 Location: NRW, Germany
|
Posted: Thu Mar 03, 2022 2:25 pm Post subject: |
|
|
Zucca wrote: | ... although at this point it shouldn't matter much as (afaik) there's no other distribution using GNU Guix (the package manager) other than GNU Guix System -distribution. |
Guix (the package manager) is well suited to run on top of another distribution: https://guix.gnu.org/en/manual/devel/en/html_node/Installation.html#Installation
Obviously you're missing out on many of the goodies that Guix System (the distribution) has to offer, but it works just fine for the package-management part.
crocket wrote: | Gentoo can be okay for relatively fast computers that you have exclusive physical control over. But, as I wrote, I prefer guile scheme to shell script which I have to write for OpenRC init scripts and gentoo packages. |
I'm far from an expert on Guix, so this might be just due to my own inexperience with the subject, but implementing init-scripts or "services" for Guix is one of the biggest pain-points for me.
In Gentoo or basically any traditional distro, you can just hack together the things you need and iterate on them until they go from kinda-sorta working to production quality. You could even just put out a message along the lines of "yeah you gotta edit these files to suit your needs". This is much harder when you use declarative configuration to set up a read-only environment. _________________ gentoo repos: kakoune | oil | hyper-v |
|
Back to top |
|
 |
Hu Administrator

Joined: 06 Mar 2007 Posts: 23542
|
Posted: Thu Mar 03, 2022 2:53 pm Post subject: |
|
|
crocket wrote: | I don't just manage my own computers. I also manage my father's computer. Because my father can do whatever he likes with his computer, I have to end maintenance quickly. | This sounds like a use-case for a binhost. Build the package on a computer you control. Make it available to your father's computer. Install with emerge --usepkgonly. Or just use a binary distribution, if the prebuilt packages they provide are adequate for your requirements. crocket wrote: | You guys haven't considered the fact that my main computer is in my sleeping room. | We hadn't considered it because you didn't mention it before now. I don't put my computer in my sleeping room. crocket wrote: | Sleeping with computer fan noise is a form of torture. It can be done, but it is painful. | Also, I find fan noise to be bothersome enough that I design for minimal noise. As I write this, I cannot hear the tower on which I am composing this message. If I had a build going, then it would spin up its fans enough to be noticeable. At idle, it is not. crocket wrote: | Gentoo linux isn't for every machine or everyone. It certainly isn't for every machine that I manage. | Agreed. Gentoo offers certain perks that other distributions don't, but if you don't get enough value from those perks, then the extra maintenance argues against using it. Personally, I really like those perks, so I'm willing to put up with the increased maintenance overhead. |
|
Back to top |
|
 |
figueroa Advocate


Joined: 14 Aug 2005 Posts: 3020 Location: Edge of marsh USA
|
Posted: Thu Mar 03, 2022 3:56 pm Post subject: |
|
|
crocket Re: your dad's computer
Sounds like a perfect use case for MX-Linux. _________________ Andy Figueroa
hp pavilion hpe h8-1260t/2AB5; spinning rust x3
i7-2600 @ 3.40GHz; 16 gb; Radeon HD 7570
amd64/23.0/split-usr/desktop (stable), OpenRC, -systemd -pulseaudio -uefi |
|
Back to top |
|
 |
crocket Guru

Joined: 29 Apr 2017 Posts: 558
|
Posted: Thu Mar 03, 2022 11:10 pm Post subject: |
|
|
Hu wrote: | This sounds like a use-case for a binhost. Build the package on a computer you control. Make it available to your father's computer. Install with emerge --usepkgonly. Or just use a binary distribution, if the prebuilt packages they provide are adequate for your requirements. |
I used to do that, but I got tired of building packages again for my father's computer. I realized that to simplify things, each computer needs to build its own packages independently without using resources of other computers. |
|
Back to top |
|
 |
crocket Guru

Joined: 29 Apr 2017 Posts: 558
|
Posted: Thu Mar 03, 2022 11:23 pm Post subject: |
|
|
Zucca wrote: | If you like Artix, then you'd probably also like Void. Void uses runit instead of OpenRC/systemd. Void also has musl variant install instead of glibc. |
I tried void linux. I don't like the fact that xbsp doesn't have a notion of source packages or third party repositories. It is worse than Arch Linux because there is no AUR for void linux.
One repository for all void linux packages is a serious bottleneck for adding new packages.
Gentoo linux doesn't have this bottleneck due to a list of overlays maintained by gentoo linux project. Guix System is similar to gentoo linux with regard to third party repositories.
And, runit has no notion of dependencies. It also doesn't handle boot services cleanly due to lack of dependencies.
On the other hand, OpenRC at least handles boot services cleanly with dependencies.
s6 doesn't have proper dependency management, either.
It seems that GNU Shepherd is even more advanced than OpenRC, yet it is not systemd. OpenRC's shell scripts can't beat a proper lisp language called guile scheme.
Guile scheme's superiority over shell script shows itself in various parts of Guix System. Thanks to guile scheme's superior fundamentals, guix already can package programs written in several different programming languages without boilerplate.
Boilerplate is unavoidable in pacman and xbsp.
I see a bright future for guix system. It's beneficial to use a proper programming language for an operating system. |
|
Back to top |
|
 |
crocket Guru

Joined: 29 Apr 2017 Posts: 558
|
Posted: Fri Mar 04, 2022 4:41 am Post subject: |
|
|
One of the advantages of guix is that it has build systems for nodejs, java, and clojure already.
https://github.com/ecbrown/guix/tree/master/guix/build also has build systems for rust cargo, go, etc, ...
Although gentoo also has eclasses for java, I really can't understand how to use java eclasses to make java packages.
Gentoo Linux still doesn't have eclasses for nodejs and clojure.
I really want to make linux packages out of npm and java and clojure packages, and guix has tools for that. |
|
Back to top |
|
 |
Zucca Moderator


Joined: 14 Jun 2007 Posts: 4119 Location: Rasi, Finland
|
Posted: Fri Mar 04, 2022 12:05 pm Post subject: |
|
|
crocket wrote: | One repository for all void linux packages is a serious bottleneck for adding new packages. | Ouch. I thought they had at least aur like thingy. Oh well...
I'd then recommend KISS Linux (for amd64 only, that is), but afaik there you also compile everything from source and the package repository is very small (intended). I do not know how how they, if at all, implement external repos...
Despite all of that, KISS Linux is probably my favorite distro I haven't tried. :P They got so many things right. _________________ ..: Zucca :..
My gentoo installs: | init=/sbin/openrc-init
-systemd -logind -elogind seatd |
Quote: | I am NaN! I am a man! |
|
|
Back to top |
|
 |
crocket Guru

Joined: 29 Apr 2017 Posts: 558
|
Posted: Sat Mar 05, 2022 5:59 am Post subject: |
|
|
Zucca wrote: | I'd then recommend KISS Linux (for amd64 only, that is), but afaik there you also compile everything from source and the package repository is very small (intended). I do not know how how they, if at all, implement external repos...
Despite all of that, KISS Linux is probably my favorite distro I haven't tried. They got so many things right. |
I looked into KISS linux before. It looked like a degraded version of gentoo linux. Your sarcasm makes it seem that you aren't recommending it but you are trying to make fun of my endorsement of guix system.
On KISS linux, you have to build all packages, but you don't get to change package options. If source packages don't let you configure compile flags, they should at least be accompanied by optional binary builds.
Guix system lets you at least manipulate packages at a low level, and it gives you binary builds when you don't need customizability.
Without flexibility, source packages are inferior to binary packages.
The use of guile scheme is a great feature that can make guix system great in a few years or a decade.
I've used several lisp languages over years. It is a serious improvement over shell scripts. Your language shapes how you do things. |
|
Back to top |
|
 |
Juippisi Developer


Joined: 30 Sep 2005 Posts: 767 Location: /home
|
Posted: Sat Mar 05, 2022 7:41 am Post subject: |
|
|
crocket wrote: |
I can afford to use gentoo linux on my main desktop system. But, for secondary systems that have less than 8GB RAM and slow CPUs, I avoid gentoo linux.
I really can't spend time on secondary systems.
|
I also used to install some binary distro on my laptops, openSUSE, Fedora... but nowadays I host my own binpkg server since I use server/desktop to build generic bin packages, then my laptop uses that server to pull bin packages from. As sam mentioned earlier, there's already an experimental "official" bin package server you could use to install binary packages where available.
https://dilfridge.blogspot.com/2021/09/experimental-binary-gentoo-package.html
Since I use my laptop only when travelling / working away from home, I also don't want to spend 1+ hours updating it. Stable system with bin packages makes it rather bearable, and allows customization where needed. The system feels familiar :)
But yeah, Fedora etc aren't bad distros either. |
|
Back to top |
|
 |
Zucca Moderator


Joined: 14 Jun 2007 Posts: 4119 Location: Rasi, Finland
|
Posted: Sat Mar 05, 2022 9:36 am Post subject: |
|
|
crocket wrote: | I looked into KISS linux before. It looked like a degraded version of gentoo linux. Your sarcasm makes it seem that you aren't recommending it but you are trying to make fun of my endorsement of guix system. | My intention wasn't to be sarcastic at all. I'm sorry if I caused confusion.
crocket wrote: | On KISS linux, you have to build all packages, but you don't get to change package options. | I do hope it's in their WIP list. crocket wrote: | If source packages don't let you configure compile flags, they should at least be accompanied by optional binary builds. | 100% agreed.
The reason why I like KISS is https://kisslinux.org/#003 wrote: | The distribution explicitly excludes logind, udev, dbus, systemd, polkit,
pulseaudio, electron and all desktop environments. This software is either
with lock-in, too complex or otherwise out of scope. | If this suits you, then you don't need much of adjusting the packages. Which in turn makes source-only model kinda odd.
crocket wrote: | The use of guile scheme is a great feature that can make guix system great in a few years or a decade.
I've used several lisp languages over years. It is a serious improvement over shell scripts. Your language shapes how you do things. | As for guile, I don't have experience with it, but I've looked the code few times. I don't see much advantages of using it vs. shell. But also on the other way. Except maybe shell languages are more familiar to most people who have been using cli already before.
If you're familiar with guile, then it's easy to contribute to the project and create own packages, I think. _________________ ..: Zucca :..
My gentoo installs: | init=/sbin/openrc-init
-systemd -logind -elogind seatd |
Quote: | I am NaN! I am a man! |
|
|
Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|