this post was submitted on 19 Jul 2023
5 points (100.0% liked)

nixos

1262 readers
1 users here now

All about NixOS - https://nixos.org/

founded 4 years ago
 

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!

top 8 comments
sorted by: hot top controversial new old
[–] [email protected] 4 points 1 year ago (2 children)

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

[–] [email protected] 1 points 1 year ago (1 children)

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.

[–] [email protected] 1 points 1 year ago (1 children)

Sorry, I don't have any practical advice on the topic, I only know the tool exists.

[–] [email protected] 1 points 1 year ago

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.

[–] [email protected] 3 points 1 year ago

You may wanna have a look at nix-portable if you don't have root access.

[–] [email protected] 1 points 1 year ago (1 children)

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 as root. The script will invoke sudo to create /nix if it doesn’t already exist.

https://nixos.org/download.html#nix-install-linux

[–] [email protected] 1 points 1 year ago* (last edited 1 year ago)

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 inside nix.storeDir = /work/apps/nix/store but it couldn't pick up the custom store location.

load more comments
view more: next ›