this post was submitted on 06 Jul 2025
        
      
      65 points (98.5% liked)
      Linux
    59283 readers
  
      
      751 users here now
      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.
Rules
- Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.
- No misinformation
- No NSFW content
- No hate speech, bigotry, etc
Related Communities
Community icon by Alpár-Etele Méder, licensed under CC BY 3.0
        founded 6 years ago
      
      MODERATORS
      
    you are viewing a single comment's thread
view the rest of the comments
    view the rest of the comments
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 shellfor this, right? Great.Now if a friend wanted to work on the project, could I share my
guix shellconfiguration with him? (Assuming he's also a Guix user.)I'm currently using
distrobox.iniplusdistrobox assemblefor this kind of workflow, but of course this isn't totally reproducible.Also, welcome to Guix System Distribution, I hope you stick around
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.
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