A book on guix -- may be helpful

Hi all…

a book on guix may be useful …

if somebody want to add and contribute u r welcome

Thanks!

I’ve got some reading for the weekend!

I am starting with Guix so this is gold for me.

Regards,

Isaac

welcome…

i ensured the core of the subject is delivered in a funny way…

thanks to AI for generating images …

good luck

I liked the content (minus the images) The weird errors in the ai-generated images only slightly detract from the otherwise-excellent written content.

Specifically the one with the extra arm and strangely merged shoe is somewhat out of place. I didn’t really notice most of the others but that one really jumps out.

Hi @sudheer !

I have really enjoyed the book. If you don’t mind, I’d like to make a couple of suggestions for your consideration.

In the first part, especially in Chapter 2, I think it would be worth making it clear that this non-declarative way of installing packages mainly applies when Guix (as a package manager) is used on a distribution other than Guix System.

Similarly, in Chapters 6 and 8, I would put even more emphasis on the fact that the recommended way to install new packages on the system is declaratively, through the configuration.scm and configuration-home.scm files. This is what allows you to take advantage of one of Guix’s main benefits: reproducibility.

After reading about package management in Chapter 2, this distinction might not be completely clear, so I think making it more explicit would help readers understand the different approaches.

Thanks for sharing your work!

Regards,

Isaac

yes ur suggestions are added… it is not written as a reference book..

as a hobby project to learn guix and make some novices try…

Hi @sudheer !

I’ve read the new version, and I think it has turned out absolutely fantastic!

Congratulations!

I think it’s a great piece of work, and I’ll definitely use myself and will recommend it.

Regards,

Isaac

Thank u so much Issac …

My be a bad idea now i added the full book as readme file … preview or read in git itself…no downloading hassles…

chapter 12 added on guix pack .. how guix packages can be relocated to “guix less” machines..and create docker image appimage etc…

Hah! I was just exploring how to do exactly this! Thanks.

I found some weird edge cases – busybox on alpine wont like extracting the tar files because of permissions, for example. I had to repack the tar to get around that. And ubuntu 24.04 doesn’t like to run stuff from the extracted tar without passing in an environment variable to fall back to proot (some problem with userns?). I didnt have an ubuntu system for debugging on, someone that I tried to give my tar to wasnt able to run it until I did further surgery. I cobbled something together to work around it, but I still dont fully understand the issue. Curiously enough, the deb built from the same tar works just fine.

Love the book, btw. It’s been really helpful.

yea the order of the LD libraries and bins in the enviournment variables matters

have u tried importing through guix…

or appimage…

Not sure what you mean by importing through guix.

It all works as expected on guix. I can run the relocatable, appimage, container, etc. The issue with the reloctable and execution on ubuntu 24.

Weird part is that proot is supposed to be the fallback, as you know since I see it in your last update, automatically for userns not being there, but I had to GUIX_EXECUTION_ENGINE=proot ./bin/whatever and it was happy and launched.

if machine u transfer has guix as a package manager

u do a " guix archive export " from the machine u transfer and

guix archive import on the machine u transferred

Oh, no it doesn’t. It was a regular user with a fairly stock ubuntu.

Hey, while you’re here, what guix packages are needed to build the book? Is there a manifest or other file to feed to guix shell to get an appropriate environment?

It is made in linux mint machine…

u need texlive, pandoc and python… and make..

;; manifest.scm - Development environment for compiling “The Joy of Guix”
(specifications->manifest
'(“make”
“texlive”
“pandoc”
“python”))

This should work

it will be texlive-bin on the above config