First of all, I’m completely new to Nix and I have no idea what I’m doing. I would like to use it initially as a more general purpose replacement of conda environments for my AI-development workflow. To begin with, I’d like to install nix
package manager at my work server where I don’t have root access. I tried
sh <(curl -L https://nixos.org/nix/install) --no-daemon
however it tries to create /nix
which I cannot do without sudo. I searched everywhere, but I don’t seem to find a way to circumvent this.
Thanks!
Nix has poor support for having a store path other than
/nix/store
. Your best bet is probably a helper like nix-portable, which uses Flatpack-like containers to emulate access to/nix
Thanks, this explains it. I’m trying to set up nix-portable now, but it’s quite confusing. I downloaded
nix-portable
binary which is a self-extracting archive that silently unpacked a bunch of files to~/.nix-portable
:$ ls ~/.nix-portable/bin/ bwrap proot zstd
It seems I was meant to run it like so
./nix-portable nix-shell
but this does nothing. On my local machine running OpenSUSE Tumbleweed it exists immediately, whereas on my work HPC server it gets stuck.Sorry, I don’t have any practical advice on the topic, I only know the tool exists.
That’s all right, thanks! It seems that it does do something indeed, I had to run with debug information and it was simply taking a long time to configure itself
NP_DEBUG=2 ./nix-portable nix-shell -p hello
The only issue is I downloaded a binary package which is dated early 2022 and it uses nix 2.5.1. I need to figure out how to force it to use the latest version of nix.
deleted by creator
You may wanna have a look at nix-portable if you don’t have root access.
Above command will perform a single-user installation of Nix, meaning that
/nix
is owned by the invoking user. You should run this under your usual user account, not asroot
. The script will invokesudo
to create/nix
if it doesn’t already exist.Thanks! I do run it indeed as a user. I don’t have a sudo access on this server so I would like to do a completely portable installation. I downloaded a portable binary for nix https://releases.nixos.org/?prefix=nix/nix-2.16.1/ and unpacked it on a file system, however when running nix it thinks that nix store is at
/nix/store
:$ /work/apps/nix/store/jdijjdjl6gjh07s4mwgb6bvm501hmjvh-nix-2.16.1/bin/nix -bash: /work/apps/nix/store/jdijjdjl6gjh07s4mwgb6bvm501hmjvh-nix-2.16.1/bin/nix: /nix/store/4nlgxhb09sdr51nc9hdm8az5b08vzkgx-glibc-2.35-163/lib/ld-linux-x86-64.so.2: bad ELF interpreter: No such file or directory
So far I wasn’t able to configure a different location for nix store: I created
~/.config/nix/nix.conf
and put this line insidenix.storeDir = /work/apps/nix/store
but it couldn’t pick up the custom store location.