nix: Added
This commit is contained in:
65
nix/README
Normal file
65
nix/README
Normal file
@ -0,0 +1,65 @@
|
||||
nix (functional package manager)
|
||||
|
||||
Nix is a purely functional package manager. This means that it treats packages
|
||||
like values in purely functional programming languages such as Haskell -- they
|
||||
are built by functions that don't have side-effects, and they never change
|
||||
after they have been built. Nix stores packages in the Nix store, usually the
|
||||
directory /nix/store, where each package has its own unique subdirectory such
|
||||
as
|
||||
|
||||
/nix/store/b6gvzjyb2pg0kjfwrjmg1vfhh54ad73z-firefox-33.1/
|
||||
|
||||
where b6gvzjyb2pg0... is a unique identifier for the package that captures all
|
||||
its dependencies (it's a cryptographic hash of the package's build dependency
|
||||
graph).
|
||||
|
||||
Nix may be run in single or multi-user mode (which requires the nix-daemon).
|
||||
The following sets up multi-user mode.
|
||||
|
||||
To have the nix daemon start and stop with your host, add to /etc/rc.d/rc.local:
|
||||
|
||||
if [ -x /etc/rc.d/rc.nix ]; then
|
||||
/etc/rc.d/rc.nix start
|
||||
fi
|
||||
|
||||
and to /etc/rc.d/rc.local_shutdown (creating it if needed):
|
||||
|
||||
if [ -x /etc/rc.d/rc.nix ]; then
|
||||
/etc/rc.d/rc.nix stop
|
||||
fi
|
||||
|
||||
The daemon requires users for building the nix packages, which should be added
|
||||
under the 'nixbld' group.
|
||||
|
||||
# groupadd -g 314 nixbld
|
||||
# for n in $(seq 1 10); do useradd -c "Nix build user $n" \
|
||||
# -d /var/empty -g nixbld -G nixbld -M -N -r -s "$(which nologin)" \
|
||||
# nixbld$n; done
|
||||
|
||||
Restricting access to the daemon is acheived by setting file permissions for
|
||||
the daemon's socket's folder.
|
||||
|
||||
# groupadd nix-users
|
||||
# chgrp nix-users /nix/var/nix/daemon-socket
|
||||
# chmod ug=rwx,o= /nix/var/nix/daemon-socket
|
||||
|
||||
Correct permissions must also be set for the following profile directories to
|
||||
give users access.
|
||||
|
||||
# mkdir -p /nix/var/nix/profiles/per-user
|
||||
# chgrp nix-users /nix/var/nix/profiles/per-user
|
||||
# chmod go+wt /nix/var/nix/profiles/per-user
|
||||
|
||||
# mkdir -p /nix/var/nix/gcroots/per-user
|
||||
# chgrp nix-users /nix/var/nix/gcroots/per-user
|
||||
# chmod go+wt /nix/var/nix/gcroots/per-user
|
||||
|
||||
For setup a user to use nix, add him to the nix-users group and load these
|
||||
lines on login (via $HOME/.profile):
|
||||
|
||||
export NIX_REMOTE=daemon
|
||||
source /etc/profile.d/nix.sh
|
||||
|
||||
If you have patches email me, or send a pull request via github:
|
||||
|
||||
https://github.com/PragmaticCypher/nix.SlackBuild
|
Reference in New Issue
Block a user