Nix (package manager): Difference between revisions

imported>Ixxie
Rearranged sections.
imported>Ixxie
Moved nix-user-chroot and PRoot install methods to the Nix Cookbook article; too esoteric for the main article.
Line 43: Line 43:
If the output of this command is <code>CONFIG_USER_NS=y</code> your system supports user namespaces.
If the output of this command is <code>CONFIG_USER_NS=y</code> your system supports user namespaces.


==== nix-user-chroot ====
<code>nix-user-chroot</code> will create an environment, in which you can bind mount an directory to <code>/nix</code>.
The mountpoint will be only visible within this environment.
<code>nix-user-chroot</code> can be build the following way. This assumes a c compiler and make is installed.
<syntaxHighlight lang="console">
$ git clone https://github.com/lethalman/nix-user-chroot.git
$ cd nix-user-chroot
$ make
</syntaxHighlight>
The last step created an executable called <code>nix-user-chroot</code>.
<code>nix-user-chroot</code> can be used to install nix.
In this example the nix store will be installed to <code>~/.nix</code>:
<syntaxHighlight lang="console">
$ mkdir -m 0755 ~/.nix
$ ./nix-user-chroot/nix-user-chroot ~/.nix bash
</syntaxHighlight>
This will start a new shell in which you can run the install script of nix:
<syntaxHighlight lang="console">
$ curl https://nixos.org/nix/install | sh
</syntaxHighlight>
Note that you can only use nix and the installed programs within the shell started by <code>nix-user-chroot</code>.
==== PRoot ====
Precompiled PRoot binaries can be downloaded from [https://github.com/proot-me/proot-static-build/releases here]
The following commands will install nix the nix store to <code>~/.nix</code>
<syntaxHighlight lang="console">
$ chmod +x proot_5.1.1_x86_64_rc2--no-seccomp # first make sure the executable bit is set on the binary
$ mkdir ~/.nix
$ ./proot_5.1.1_x86_64_rc2--no-seccomp ~/.nix
</syntaxHighlight>
This will start a new shell, where nix can be installed:
<syntaxHighlight lang="console">
$ curl https://nixos.org/nix/install | sh
</syntaxHighlight>
Note that you can only use nix and the installed programs within the shell started by PRoot.


== Sandbox builds ==
== Sandbox builds ==