blob: 7387ae3d920aaf1096120aa27468e8007f36cdd0 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
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".
|