=> Midnight Pub

Migrating from Arch to GUIX, or, An Exercise in Toe-Dipping

=> ~tetris

Patting myself on the back

> Larry Hardcore (Clone High):
>    See, I was into everything: weed, grass, ganga, reefer, marijuana,
> mary jane, I did it all. I even smoked pot once.

or to paraphrase:

> Tetris (Midnight.pub):
>    See, I was into everything: Gentoo, Ubuntu, Slackware, Debian, 
> Fedora, Puppy, Arch, I did it all. I even tried Linux once.

As a friend of GNU, a contributor to the EFF, a rabid follower of Cory Doctorow and RMS, a subscriber of all that is FOSS and the FSF, an all around RJ¹ - and just an insufferable person in general - I've decided that the correct, moral, ethical, right, honorable, just, fair, proper, and applaudable thing to do is move more towards GNU as my choice of OS

Background

GUIX is a package manager that can work on top of any existing flavour of Linux, and indeed can be considered a standalone OS in itself when deployed with either the linux-libre or the hurd kernel².

It can create environments and even docker images from a desired set of packages:

guix pack -f docker gimp inkscape 

similar to conda. It also allows you to completely declare your desired system, complete with packages and configurations from a single specification written in Scheme (Guile)⁴, similar to NixOS.

Migrating Arch to GUIX

Arch linux is pretty bare-minimal OS, that installs only what you want without any extra bells and whistles, and since it's my OS of choice on all my machines. I decided I would uninstall all my packages that depend on "pacman" (Arch's default package manager), and install them via "guix" using the "guix-installer" package on AUR⁵ and running sudo guix-install.sh

A nice way to find your top-level packages which are not dependencies on others is to run

comm -23 <(pacman -Qqt | sort) <(pacman -Sqg base base-devel | sort)

From this list you can work your way through uninstalling each package pacman -R <blah> and installing the guix equivalent guix install <blah> (note: no sudo here).

Caveats

There should be no difference in filesystem usage unless you forget to allow guix to download pre-built binaries. I've noticed that some kde packages don't have pre-built binaries, so these might take some time to build locally. I recommend just purging the whole KDE ecosystem if you can (bye bye sweet kdenlive).

Firefox is not available (GNU Icecat is the preferred browser), so this was a package I kept on Arch as I need Firefox. It complained about missing libraries, but you can get around this by running

LD_LIBRARY_PATH=/usr/lib firefox

Afterthoughts

Otherwise, everything is running just fine! At some point I will move to a full GUIX system, but for now, I'm content to keep my Arch packages to the bare minimum and just use GUIX whenever I need to install anything.

[References]

=> 1: http://www.linfo.org/acronym_list.html | 2: https://guix.gnu.org/en/about/ | 3: https://nixos.org/ | 4: https://www.gnu.org/software/guile/ | 5: https://aur.archlinux.org/packages/guix-installer

=> Write a reply

Replies

=> ~ghodawalaaman wrote:

Just commenting you to know that I found this thread on DDG. this was the search string: firefox is best site:midnight.pub

I though midnight.pub isn't searchable :o

=> ~dog wrote (thread):

Have you taken a look at Nonguix? It seems to offer a firefox distribution.

=> https://gitlab.com/nonguix/nonguix

=> ~xiu wrote (thread):

Thanks for sharing this ~tetris. Super interesting 👀

=> ~inquiry wrote (thread):

Just barely related (trigger: the words "friend of GNU")... and forgive me if I've posted this before (getting old...), but once upon a time I recorded song spoofs under the band name 'gdbeatles', and this ("'Till There Was GNU") was one of their hits:

=> sound

=> lyrics

=> ~contrarian wrote (thread):

You might like Bedrock Linux.

Proxy Information
Original URL
gemini://midnight.pub/posts/1143
Status Code
Success (20)
Meta
text/gemini
Capsule Response Time
190.990067 milliseconds
Gemini-to-HTML Time
3.050786 milliseconds

This content has been proxied by September (3851b).