SlackBuilds Repository

15.0 > System > nix (2.8.1)

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 /sbin/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

To 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

This requires: gtest, mdbook, libeditline, lowdown, jq, nlohmann_json, libcpuid

Maintained by: Pouria Rezaei
Keywords: package manager,nix
ChangeLog: nix

Homepage:
http://nixos.org/nix

Source Downloads:
nix-2.8.1.tar.gz (b2b6a1756fc6e44fd78cebcb24818843)

Download SlackBuild:
nix.tar.gz
nix.tar.gz.asc (FAQ)

(the SlackBuild does not include the source)

Validated for Slackware 15.0

See our HOWTO for instructions on how to use the contents of this repository.

Access to the repository is available via:
ftp git cgit http rsync

© 2006-2024 SlackBuilds.org Project. All rights reserved.
Slackware® is a registered trademark of Patrick Volkerding
Linux® is a registered trademark of Linus Torvalds