GNU Guix 0.8.1
savannah.gnu.org
GNU Guix 0.8.1
1–10 of 41 posts
Re: GNU Guix 0.8.1
#2The project develops, at the same time, GNU GSD (Guix System Distribution), a GNU operating system.
GNU GSD is an avant-garde GNU system utilizing Guix as its package manager, and the similarly Guile/Scheme based dmd as its init system.
Re: GNU Guix 0.8.1
#3Re: GNU Guix 0.8.1
#4It looks like Guix provides a significantly more expressive interface with Scheme than Nixos does with Nix expressions. IIRC, there's also better integration with the system (Nixos auto-generates plenty of bash), which will surely accelerate development / debugging.
Does anyone here have Guix experience to share?
Re: GNU Guix 0.8.1
#5Awesome to see this here! I've been using Nix/Nixos (which Guix is heavily based on) on my personal laptop for several months now. I'll never look back from the purely declarative system configuration - I finally feel like I have full control of my machine's state. It looks like Guix provides a significantly more expressive interface with Scheme than Nixos does with Nix expressions. IIRC, there's also better integrat…
Re: GNU Guix 0.8.1
#6Could someone explain in a simple way, why this is better that using, for example, apt-get ?
With guix gsd and nixos, the package manager is the configuration manager. The package manager is not just package manager, its not just apt-get, it is also puppet/chef/salt, and a distribution-maker or manager. I believe with guix you could make your own distribution (software collection) in the same descriptive language as making packages. You cant do that with apt or any debian tools.
Re: GNU Guix 0.8.1
#7Could someone explain in a simple way, why this is better that using, for example, apt-get ?
* you can describe a tree of dependencies using any version of the package you want, and can easily rollback to a previous tree if an update broke it
* because you describe a tree of packages, you're actually describing the complete state of the system, there's no leftovers from previous installations which make it work by chance
* as a result you can easily partially alter (and rollback) or move nix configurations from one machine to the next
Essentially nix (and guix?) merges package management and configuration management in a stateless and declarative, easily audited and customised, manner.
Re: GNU Guix 0.8.1
#8Could someone explain in a simple way, why this is better that using, for example, apt-get ?
apt-get allows at most one version of a package to be installed at a time; if you want two versions, you need to ask the maintainers to split the package into two. Guix doesn't suffer this problem; packages are given an ID based on a hash of their contents and dependencies, so two versions will happily sit side-by-side. An "update" is treated more like installing a separate package.
If two applications depend on two different versions of some library, you can't install both applications. In Guix you can, since each can use the version it needs.
apt-get affects the whole system. All users are affected by a change; if some other user installs/removes/updates a package, you have to just deal with it. In Guix, every user gets a "profile" package, which can depend on anything they like. Installing/removing/updating packages just creates a new version of your profile, with its dependencies added/removed/changed according to what you asked for.
apt-get is stateful: the contents of /usr, /etc, etc. are changed as packages are installed/removed. Guix is immutable: packages live in their own read-only directories, so nothing can break them after installation.
apt-get can't roll back: packages can't be down-graded, all kinds of actions are taken by pre/post install scripts which can't be undone, etc. Since Guix is immutable, "rolling back" just means going back to the old selection of packages; ie. installing the old version of the profile package.
Re: GNU Guix 0.8.1
#9Could someone explain in a simple way, why this is better that using, for example, apt-get ?
I've also found that the increasing entropy caused by stateful alternatives (e.g. apt-get) eventually becomes impossible to manage. This is entirely due to hidden state that grows in complexity over time. Eventually, things break in a way that nobody on StackOverflow has seen before, and you're SOL. In the declarative world, everything specific to your setup is required to be defined upfront, in one central place. This provides you with a much better chance of understanding your system as it evolves.
(Your account name makes me think you've appreciated functional programming data structures at some point. In not surprisingly, the benefits of immutability and declarative style in programming languages seem to carry over to configuration management.)
Re: GNU Guix 0.8.1
#10Version 0.8.1 of GNU's purely functional package manager Guix has been released. The project develops, at the same time, GNU GSD (Guix System Distribution), a GNU operating system. GNU GSD is an avant-garde GNU system utilizing Guix as its package manager, and the similarly Guile/Scheme based dmd as its init system.
I probably will one day, but not right now.
But: I'm not sure you're doing your work any justice by labelling it "avant-garde". I think you risk looking "weird" or more dangerous than you need to and might detract people from looking into it.