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!

  • ck_@discuss.tchncs.de
    link
    fedilink
    arrow-up
    4
    ·
    11 months ago

    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

    • suspectumOP
      link
      fedilink
      arrow-up
      1
      ·
      11 months ago

      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.

        • suspectumOP
          link
          fedilink
          arrow-up
          1
          ·
          11 months 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.

    • suspectumOP
      link
      fedilink
      arrow-up
      0
      ·
      11 months ago

      yes, this is what I ended up using, works quite well but there are several quirks and it’s not actively maintained unfortunately.

    • suspectumOP
      link
      fedilink
      arrow-up
      1
      ·
      edit-2
      11 months 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.