Coder Social home page Coder Social logo

Comments (12)

Hoverbear avatar Hoverbear commented on June 29, 2024 1

So it works with the glibc version???? Yes!!!

from nix-installer.

Hoverbear avatar Hoverbear commented on June 29, 2024

We've seen other reports of issues with nsncd as well, I think we need to do some work to add support.

from nix-installer.

gmacon avatar gmacon commented on June 29, 2024

Further evidence for this being related specifically to nsncd: I stopped nsncd and ran the installer and it worked.

from nix-installer.

Hoverbear avatar Hoverbear commented on June 29, 2024

I installed the latest nsncd package on an Ubuntu VM and was able to use nix-installer without any special configuration:

ana@ephemeral-ubuntu:~/Downloads$ curl -L https://install.determinate.systems/nix | sh -s -- install
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100 16008  100 16008    0     0  19983      0 --:--:-- --:--:-- --:--:-- 19983
info: downloading installer https://install.determinate.systems/nix/tag/v0.11.0/nix-installer-x86_64-linux
`nix-installer` needs to run as `root`, attempting to escalate now via `sudo`...
Nix install plan (v0.11.0)
Planner: linux (with default settings)

Planned actions:
* Create directory `/nix`
* Fetch `https://releases.nixos.org/nix/nix-2.17.0/nix-2.17.0-x86_64-linux.tar.xz` to `/nix/temp-install-dir`
* Create a directory tree in `/nix`
* Move the downloaded Nix into `/nix`
* Create build group (GID 30000)
* Setup the default Nix profile
* Place the Nix configuration in `/etc/nix/nix.conf`
* Configure the shell profiles
* Create directory `/etc/tmpfiles.d`
* Configure Nix daemon related settings with systemd
* Remove directory `/nix/temp-install-dir`


Proceed? ([Y]es/[n]o/[e]xplain): y
 INFO Step: Create directory `/nix`
 INFO Step: Provision Nix
 INFO Step: Create build group (GID 30000)
 INFO Step: Configure Nix
 INFO Step: Create directory `/etc/tmpfiles.d`
 INFO Step: Configure Nix daemon related settings with systemd
 INFO Step: Remove directory `/nix/temp-install-dir`
Nix was installed successfully!
To get started using Nix, open a new shell or run `. /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh`

ana@ephemeral-ubuntu:~/Downloads$ sudo systemctl status nsncd
● nsncd.service - name-service non-caching daemon
     Loaded: loaded (/lib/systemd/system/nsncd.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2023-09-07 08:36:43 PDT; 43s ago
   Main PID: 42010 (nsncd)
      Tasks: 11 (limit: 4636)
     Memory: 1.4M
        CPU: 24ms
     CGroup: /system.slice/nsncd.service
             └─42010 /usr/lib/nsncd

Sep 07 08:36:43 ephemeral-ubuntu systemd[1]: Starting name-service non-caching daemon...
Sep 07 08:36:43 ephemeral-ubuntu nsncd[42010]: Sep 07 08:36:43.392 INFO started, config: Config { ignored_request_types: {}, worker_count: 8, handoff_timeout: 3s }, path: "/var/run/nscd/socket"
Sep 07 08:36:43 ephemeral-ubuntu systemd[1]: Started name-service non-caching daemon.
Sep 07 08:36:55 ephemeral-ubuntu nsncd[42010]: Sep 07 08:36:55.122 ERRO error handling request, err: ENOENT: No such file or directory, request_type: GETGRBYNAME, thread: worker_0
Sep 07 08:37:00 ephemeral-ubuntu nsncd[42010]: Sep 07 08:37:00.308 ERRO error handling request, err: ENOENT: No such file or directory, request_type: GETGRBYNAME, thread: worker_1
Sep 07 08:37:00 ephemeral-ubuntu nsncd[42010]: Sep 07 08:37:00.410 ERRO error handling request, err: ENOENT: No such file or directory, request_type: GETPWBYUID, thread: worker_0
Sep 07 08:37:00 ephemeral-ubuntu nsncd[42010]: Sep 07 08:37:00.452 ERRO error handling request, err: ENOENT: No such file or directory, request_type: GETPWBYUID, thread: worker_4
Sep 07 08:37:01 ephemeral-ubuntu nsncd[42010]: Sep 07 08:37:01.351 ERRO error handling request, err: ENOENT: No such file or directory, request_type: GETPWBYUID, thread: worker_0
Sep 07 08:37:01 ephemeral-ubuntu nsncd[42010]: Sep 07 08:37:01.695 ERRO error handling request, err: ENOENT: No such file or directory, request_type: GETPWBYUID, thread: worker_7

The errors nsncd emits don't seem to break the install. I was able to successfully run Nix commands.

Can you help me understand how your system may differ from my test system?

from nix-installer.

gmacon avatar gmacon commented on June 29, 2024

The most likely candidate is that my user account isn't a local (/etc/passwd) account, it's a directory account. The system is configured with SSSD locally talking to an IPA server for authentication. I don't actually configure that (my office's IT staff hands the system to me with all of this already set up), so I don't know a lot about it, but I'm happy to answer questions about the configuration that's on my system.

It did occur to me that there might be a directory group with ID 30000, but I double-checked and there isn't such a group.

from nix-installer.

Hoverbear avatar Hoverbear commented on June 29, 2024

The process is failing on https://docs.rs/nix/latest/nix/unistd/struct.Group.html#method.from_name, which calls https://pubs.opengroup.org/onlinepubs/9699919799/functions/getpwuid_r.html.

By the looks of it nsncd may intercept that call, I wonder if there is some incompatibility...

from nix-installer.

Hoverbear avatar Hoverbear commented on June 29, 2024

In #512 we wondered if this was caused by musl somehow. If you're willing to fiddle with Rust toolchains, do you think you could try the cargo based instructions here? https://github.com/DeterminateSystems/nix-installer#building-a-binary

RUSTFLAGS="--cfg tokio_unstable" cargo install --git https://github.com/DeterminateSystems/nix-installer

Then try

nix-installer install

from nix-installer.

gmacon avatar gmacon commented on June 29, 2024

I fired up an ubuntu:focal docker container, installed curl and build-essential, ran rustup, and ran the build command you cited. I copied the installer to my laptop, created an isolated shell (with no Nix stuff configured; sudo -u $USER /bin/bash --noprofile --norc) and then realized that this doesn't help because I already have Nix installed, so it just says

Found existing plan in /nix/receipt.json, with the same settings, already completed, try uninstalling (/nix/nix-installer uninstall) and reinstalling if Nix isn't working

I don't really want to uninstall Nix at this point, but I was able to successfully run sudo ./nix-installer plan linux.

from nix-installer.

Hoverbear avatar Hoverbear commented on June 29, 2024

If the plan works, that's a good sign. I'm going to hold this issue open and hopefully someone might chime in with a similar problem and this fixing it. Otherwise I'll try to build a full reproduction soon and confirm this is the fix soon.

from nix-installer.

gmacon avatar gmacon commented on June 29, 2024

I needed to install Nix on another system today, so I gave this a try.

nix-installer v0.14.0 (/root/.cargo/git/checkouts/nix-installer-3ae5a75f90316dad/ccae8a0)

$ grep sss /etc/nsswitch.conf 
passwd:         files systemd sss
group:          files systemd sss
shadow:         files sss
services:       db files sss
netgroup:       nis sss
sudoers:        files sss
automount:      sss
$ systemctl status nsncd
● nsncd.service - name-service non-caching daemon
     Loaded: loaded (/lib/systemd/system/nsncd.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2023-10-26 16:20:50 EDT; 4min 50s ago
   Main PID: 99917 (nsncd)
      Tasks: 11 (limit: 76693)
     Memory: 1.4M
     CGroup: /system.slice/nsncd.service
             └─99917 /usr/lib/nsncd
$ ./detsys-nix-inst/nix-installer install
`nix-installer` needs to run as `root`, attempting to escalate now via `sudo`...
[sudo] password for gmacon: 
Nix install plan (v0.14.0)
Planner: linux (with default settings)

Planned actions:
* Create directory `/nix`
* Fetch `https://releases.nixos.org/nix/nix-2.18.1/nix-2.18.1-x86_64-linux.tar.xz` to `/nix/temp-install-dir`
* Create a directory tree in `/nix`
* Move the downloaded Nix into `/nix`
* Create build users (UID 30000-30032) and group (GID 30000)
* Setup the default Nix profile
* Place the Nix configuration in `/etc/nix/nix.conf`
* Configure the shell profiles
* Configure Nix daemon related settings with systemd
* Remove directory `/nix/temp-install-dir`


Proceed? ([Y]es/[n]o/[e]xplain): y
 INFO Step: Create directory `/nix`
 INFO Step: Provision Nix
 INFO Step: Create build users (UID 30000-30032) and group (GID 30000)
 INFO Step: Configure Nix
 INFO Step: Create directory `/etc/tmpfiles.d`
 INFO Step: Configure Nix daemon related settings with systemd
 INFO Step: Remove directory `/nix/temp-install-dir`
Nix was installed successfully!
To get started using Nix, open a new shell or run `. /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh`

$ 

from nix-installer.

ameyp avatar ameyp commented on June 29, 2024

Worked for me too with the glibc version

from nix-installer.

Hoverbear avatar Hoverbear commented on June 29, 2024

Thank you so much for confirming. We may need to consider options here.

from nix-installer.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.