summaryrefslogtreecommitdiff
path: root/system/guix/README
diff options
context:
space:
mode:
Diffstat (limited to 'system/guix/README')
-rw-r--r--system/guix/README45
1 files changed, 45 insertions, 0 deletions
diff --git a/system/guix/README b/system/guix/README
new file mode 100644
index 0000000000..e69e02f307
--- /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