For those who don't know Guix, it's similar to Nix(OS), except that packages are defined as native Guile modules, using extensions to the Scheme language (in contrast to Nix, where a special-purpose DSL is used to define packages).
I've been using it (disclaimer: I've even been hacking on it. ;-)) The standalone Guix-based distribution uses dmd as its init system.
The way it is used, dmd itself takes care exclusively of keeping services running. Services themselves are "translated" to for dmd's configuration file from their higher-level definition (see http://www.gnu.org/software/guix/manual/html_node/Defining-S... ).
Having a general-purpose programming language to specify your packages with is Really Cool™, and personally (disclaimer: perhaps i am the only person on the planet who feels this way) the learning curve for writing packages seems a little less steep than for Nix since Guix uses a language one might already know whereas Nix uses a DSL which i found somewhat obscure and non-intuitive.
Practically, though, Nix has way more packages available since it's been around longer and has a larger user base. But there's no reason not to help by porting your favourite package to Guix!
ok, now how does one install a package manager? I see they are using installation _images_ for some reason... Why does one need an installation _image_ to install a package manager?
I'll make an analogy that hopefully won't earn me flames. It's possible to install Guix as an "extra" package manager a bit like Brew in the OS X world, which is done by essentially git-clone'ing the sources and building it in user land. Instructions are here: https://www.gnu.org/software/guix/manual/html_node/Installat... . Basically you end up with your Linux system as before, plus Guix now managing packages installed in /gnu/store, which are made accessible via your $PATH. It is therefore relatively simple to try it out that way and blow it all away if you decide it sucks.
Otherwise, the images you talk about are for booting a full live system (the Guix OS if you will) which uses Guix as its package manager. This allows you to play around with it and/or install it. This works quite well in a virtual machine such as qemu.
Someone should donate them some Cortex A57-based hardware. Most of the more powerful chips this year will be based on that, and it's also based on the new ARMv8 architecture.
13 comments
[ 2.7 ms ] story [ 41.5 ms ] threadThe way it is used, dmd itself takes care exclusively of keeping services running. Services themselves are "translated" to for dmd's configuration file from their higher-level definition (see http://www.gnu.org/software/guix/manual/html_node/Defining-S... ).
The nice thing is that service actions are written in Scheme so they can do anything. For instance, 'static-networking-service' at http://git.savannah.gnu.org/cgit/guix.git/tree/gnu/services/... uses directly the right ioctls to set up the network; so does 'file-system-service' at http://git.savannah.gnu.org/cgit/guix.git/tree/gnu/services/... and so on.
Practically, though, Nix has way more packages available since it's been around longer and has a larger user base. But there's no reason not to help by porting your favourite package to Guix!
Otherwise, the images you talk about are for booting a full live system (the Guix OS if you will) which uses Guix as its package manager. This allows you to play around with it and/or install it. This works quite well in a virtual machine such as qemu.