diff options
Diffstat (limited to 'system/guix/README')
-rw-r--r-- | system/guix/README | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/system/guix/README b/system/guix/README new file mode 100644 index 0000000000000..e69e02f307ad1 --- /dev/null +++ b/system/guix/README @@ -0,0 +1,45 @@ +GNU Guix provides state-of-the-art package management features such as transactional +upgrades and roll-backs, reproducible build environments, unprivileged package +management, and per-user profiles. It uses low-level mechanisms from the Nix package +manager, but packages are defined as native Guile modules, using extensions to the +Scheme language—which makes it nicely hackable. + +Guix may be run in single or multi-user mode (which requires the guix-daemon). To +have the guix daemon start and stop with your host, add to /etc/rc.d/rc.local: + +if [ -x /etc/rc.d/rc.guix ]; then +/etc/rc.d/rc.guix start +fi + +and to /etc/rc.d/rc.local_shutdown (creating it if needed): + +if [ -x /etc/rc.d/rc.guix ]; then +/etc/rc.d/rc.guix stop +fi + +The daemon requires users for building the guix packages, which should be added +under the 'guixbld' group. + +groupadd --system guixbuild +for i in `seq -w 1 10`; do + useradd -g guixbuild -G guixbuild \ + -d /var/empty -s `which nologin` \ + -c "Guix build user $i" --system \ + guixbuilder$i; +done + +Restricting access to the daemon to only users in the guixbuild group is acheived +by setting file permissions for the daemon's socket's folder. + +chgrp guixbuild /var/guix/daemon-socket +chmod ug=rwx,o= /var/guix/daemon-socket + +Correct permissions must also be set for /var/guix/profiles to give users access. + +By default guix will compile in /tmp, this can be changed by exporting $TMPDIR. +Guix will also by default store its packages in /gnu/store, to save space in the +root partition /gnu can be mounted on another partition. + +Guix can either be built with the nix-daemon instead of the default guix-daemon or along +side nix sharing the same store, both require nix as an optional dependency. To build with +the nix-daemon use NIX="yes" and to share the store with nix use SHARE="yes".
\ No newline at end of file |