|
|
Line 1: |
Line 1: |
|
| |
|
| == Alternative Install Methods ==
| |
|
| |
| === Install Nix without root permissions ===
| |
|
| |
| By using [https://github.com/lethalman/nix-user-chroot nix-user-chroot] or [https://github.com/proot-me/PRoot PRoot]
| |
| you can use Nix on systems, where you have no permission to create `/nix`.
| |
| <code>nix-user-chroot</code> is the preferred and faster option. However it might not run on older linux kernels
| |
| or kernels without user namespace support. With the following command you can test
| |
| whether your system support user namespaces:
| |
|
| |
| <syntaxHighlight lang="console">
| |
| $ unshare --user --pid echo YES
| |
| </syntaxHighlight>
| |
|
| |
| The output should be <code>YES</code>.
| |
| If the command is absent an alternative is to check the kernel compile options.
| |
|
| |
| <syntaxHighlight lang="console">
| |
| $ zgrep CONFIG_USER_NS /proc/config.gz
| |
| # On some systems like Debian or Ubuntu the kernel configuration is in a different place
| |
| $ grep CONFIG_USER_NS /boot/config-$(uname -r)
| |
| </syntaxHighlight>
| |
|
| |
| 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.
| |