GNU Guix transactional package manager as an alternative to AUR
4 months ago by HaraldvonBlauzahn to c/archlinux
cross-posted from: https://feddit.org/post/23120439
Some people might look for alternatives to using AUR for common packages, for example because they don't have the competence to review PKDBUILD scripts for malicious code, or maybe because they simply do not have the time. The Guix package manager might be an alternative for these, as it now supports 31000 packages - significantly more than the Arch distribution. So, for popular packages, chances are good that your package is covered by Guix.
But what is Guix? Here, a summary of key features and decisions of Guix:
As example: you quickly want to try a recent version of a modern Scheme, say Guile 2 or Guile 3, or kawa (which runs on the JVM, like Clojure, see https://www.gnu.org/software/kawa/). Or of the interesting vis editor, a spin-off of Rob Pike's sam (https://github.com/martanne/vis). But you can't use the AUR packages, since AUR only supports Guile 1.8, and / or you don't have time to review the PKGBUILD and all its dependencies, and vis is simply not in AUR. Here, Guix helps out! Just type
guix install guile
guix install kawa
guix install vis
and bang you have it!
Disadvantages
How it works:
https://codeberg.org/guix/guix#headline-4
Manual:
For using Guix as a package manager under Arch, see:
I'm using Guix system so it's not really relevant to me right now, but since you mentioned you've used it on foreign distros, how does Guix handle programs that need graphics drivers? When using Nix on foreign distros, the graphics drivers are handled in a weird way where you either have to use a wrapper like NixGL, or, what i do right now, is create the driver packages manually and symlink them to /run, which is how NixOS does it. Do you need to do anything special on the Guix side of things? I noticed that Guix system does not have its drivers in /run, so they must be doing it differently.
I can't say much to this. I am for example using an Emacs version from Guix (mostly under Debian though, in order to use the Rust LSP server and the corresponding Emacs package, and it runs fine as a graphical program. I am usually using StumWM under X11. But currently I use GNOME under wayland.
For Arch, I run it in a VM with Guix-packaged programs (with XFce2), and didn't see any problem either. Nor had I to think about it.
Do you expect problems when using Wayland? Wayland runs fine for me, I only needed to replace NVidia graphics with an AMD Radeon some time ago. But that was a Debian thing...
And apart from that, it is essentially the kernel's job, and that of the graphical display server, to abstract from the hardware, so I would expect when running Guix on top of a Arch kernel+Display server, not have to worry much. The Guix packages stand on their own libc, but they use the syscall interface of the underlying kernel of course.
It is different if the Guix SD distribution runs directly on the metal. In this case, compatible graphics hardware is definitively needed.
Hmm, i should probably experiment with it in a vm at some point, but from what you're saying it sounds like it works ootb. In that case i would say Guix definitely handles this better. Nix packages that need graphics drivers don't work ootb, because it expects the drivers to be in /run, because that's where the drivers are on NixOS, and they can't use the host drivers. NixGL tries to solve this, but i stopped using it because it causes other problems. For example, if you install a wayland compositor through nix and run it with the NixGL wrapper, if you then try to run a game or something that needs the host drivers, it won't work because everything launched inside of the compositor inherits the NixGL status. So now i manually create a driver package and symlink it to /run, that way there is no wrapping and the drivers don't conflict with each other, but it still feels hacky. I can also imagine it's very inconvenient for someone who's just getting into Nix and just wants to install a few things in a profile to be running into that issue.
go to feed...
go to feed...
nonguix exists to mitigate most of those problems
save