59
Installing Guix as a Complete GNU/Linux System - System Crafters
(systemcrafters.net)
From Wikipedia, the free encyclopedia
Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).
Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.
Community icon by Alpár-Etele Méder, licensed under CC BY 3.0
I love it especially because of the guix shell and guix shell container for dev environment isolation. It is a whole different ecosystem from the ground up though so it's not an easy ride. But those two features make it worth it for me. Also it's GNU distro which imo is a plus.
Yeah! This is one of the features I'm most interested in. I haven't gotten to using this feature yet, but I was curious about it.
Let's say I'm working on a project that requires Go, Node, maybe some C library, and GNU Make. Seems like I would be able to use
guix shell
for this, right? Great.Now if a friend wanted to work on the project, could I share my
guix shell
configuration with him? (Assuming he's also a Guix user.)I'm currently using
distrobox.ini
plusdistrobox assemble
for this kind of workflow, but of course this isn't totally reproducible.yes, you would share with him guix manifest which is a file that specifies which packages should be present. What is important to note are inferiors which is a mechanism to version lock the packages.
Aaaah: https://guix.gnu.org/manual/devel/en/html_node/Writing-Manifests.html
Heck yeah!
thats it :) Now you need to pin package versions to guix versions via inferior so that you can share the manifest and be sure you have exact same stuff on the other machine. Otherwise the specified packages get updated everytime you update your system. I learned that the hard way by having to wait for latex to download everytime I updated my system.
Also, welcome to Guix System Distribution, I hope you stick around
Iirc guix shell is for one off package or programs you want to test, say you want to quickly format a drive to exfat or so, when you exit the sub-shell, the installed packages are discarded
guix shell containers would work best for your scenario but I have little experience with them