slackbuilds/system/guix
Hunter Sezen a32ea2ba97 system/guix: Update maintainer email.
Signed-off-by: David Spencer <idlemoor@slackbuilds.org>
2018-03-18 17:17:49 +00:00
..
config system/guix: Updated for version 0.11.0. 2016-09-23 04:50:24 +07:00
README system/guix: Fix README. 2016-11-15 21:41:38 +07:00
doinst.sh
guile-json.patch.gz system/guix: Updated for version 0.12.0. 2016-12-30 23:56:00 +00:00
guix.SlackBuild system/guix: Fix ownership. 2017-07-15 07:13:30 +07:00
guix.info system/guix: Update maintainer email. 2018-03-18 17:17:49 +00:00
slack-desc system/guix: Fix slack-desc. 2016-11-14 16:47:23 +07:00

README

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 'guixbuild' group.

groupadd -g 316 guixbuild
for i in `seq -w 1 10`; do
          useradd -G guixbuild \
          -d /var/empty -s `which nologin` \
          -c "Guix build user $i" -u 316 -g 316 \
          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".

guile-json is an optional dependency and will allow you to use the 'guix
import pypi' command. It is of interest primarily for developers and
not for casual users.