site  contact  subhomenews

Guix works with EasyOS

September 20, 2024 — BarryK

This is extremely interesting!

What originally motivated me to consider Guix was a forum post by member Stogie:

https://forum.puppylinux.com/viewtopic.php?p=130981#p130981

...see my reply, that there are ways to install more applications, such as AppImages, Flatpaks and another OS running in a container.

Each of those, though, has issues. It got me wondering about distro-independent package managers. These are package managers that can install in any Linux distribution. They have a large package repository and install packages with all dependencies separate from the host system. Yes, that is similar to AppImages, Flatpaks and another OS in a container.

As far as I can make out though, these package managers do not have paranoid sandboxes like Flatpaks and containers, nor do they duplicate all dependencies for each app as with AppImages. It looks like the possibility of smaller overall size and run nicely on the host system.

I found three different distro-independent package managers. Firstly, Homebrew:

https://github.com/Homebrew/brew

...designed originally for MacOS, now also works in Linux. Secondly, Nix:

https://nixos.org/

And thirdly, Guix:

https://guix.gnu.org/

img1

The website provides an install script, that I had to hack on quite a bit, but got there. Ha ha, the script ended reporting successful install, and I didn't know what to do next. Baby steps seemed to be missing. A search, found lots of tutorials and videos, so was able to take the baby steps and install a package.

The Guix project is hosted here:

https://savannah.gnu.org/projects/guix/

...I went there to see just how active it is; and yeah, very active. Lots of developers; that's good.

Regarding my baby steps after running the install script, I rebooted and then did this; I didn't really know what that does, but some documentation said to do it:

# guix pull
Updating channel 'guix' from Git repository at 'https://git.savannah.gnu.org/git/guix.git'...
Authenticating channel 'guix', commits 9edb3f6 to 59db76c (37,220 new commits)...
Building from this channel:
guix https://git.savannah.gnu.org/git/guix.git 59db76c
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 0.0%guix substitute: warning: ci.guix.gnu.org: host not found: Servname not supported for ai_socktype
substitute:
substitute: updating substitutes from 'https://bordeaux.guix.gnu.org'... 0.0%guix substitute: warning: bordeaux.guix.gnu.org: host not found: Servname not supported for ai_socktype
substitute:
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 0.0%
substitute: updating substitutes from 'https://bordeaux.guix.gnu.org'... 0.0%
...

Thanks to Giuliano, for his very grass-roots explanation on installing Guix:

https://gist.github.com/giuliano108/49ec5bd0a9339db98535bc793ceb5ab4

...yes, I had to modify /etc/services file. I used his cut-down file, but do need to find what is required to edit the original /etc/services

It took awhile, downloaded lots of packages. Played with it right until 4.30am this morning. Now back at it at 9.00am and checking sizes:

# du -h -s /gnu /var/guix
4.2G /gnu
35M /var/guix

...yeah, big.

What I did in the early hours of this morning, is firstly installed a "Hello World" app:

# guix install hello
...
# hello
Hello, world!

Then got more ambitious:

# guix install shotcut
...
# shotcut

...it works! Well, it started anyway, didn't actually use it.

There are some more setup details for the Guix apps to run nicely in a host OS, that I have yet to do.

Here is a list of online Guix resources:

https://github.com/techenthusiastsorg/awesome-guix

I can see potential here, to add many more packages to EasyOS. Maybe a fifth package manager, complimenting PKGget, SFSget, Flapi and Appi. Or, a completely new approach...

I wonder... over the years, there have been so many exploratory projects on the Puppy Forum, perhaps someone has considered Guix. Yes, Caramel has explored both Nix and Guix:

https://forum.puppylinux.com/viewtopic.php?t=8904

...I would have seen that before, but forgot. Caramel has discovered the fix required for /etc/services

Stay tuned; quite likely there is going to be a very interesting outcome.    

Tags: easy