lix-installer installs a non-functional setup #1158

Closed
opened 2026-03-18 08:18:51 +00:00 by msfjarvis · 11 comments

Platform

This is on a GitHub Actions runner

  • Linux: Ubuntu 24.04 ARM
  • macOS
  • WSL

Additional information

I run the installation with this snippet:

  if [[ -z $(command -v nix) ]]; then
    curl --proto '=https' --tlsv1.2 -sSf -L https://install.lix.systems/lix | sh -s -- install --no-confirm --extra-conf "
      trusted-users = $(whoami)
      access-tokens = github.com=$GITHUB_TOKEN
    "
  fi

Since March 17 this now fails to install a working Nix Lix.

I tried following the log output suggestion of source-ing nix-daemon.sh here but the issue has persisted.

Output

Output

sh: 92: [: x86_64-linux: unexpected operator
info: downloading installer
 INFO nix-installer v3.95.0
`lix-installer` needs to run as `root`, attempting to escalate now via `sudo`...
 INFO nix-installer v3.95.0
 INFO Step: Create directory `/nix`
 INFO Step: Provision Nix
 INFO Step: Create build users (UID 30001-30032) and group (GID 30000)
 INFO Step: Configure Nix
 INFO Step: Create directory `/etc/tmpfiles.d`
 INFO Step: Configure Nix daemon service
 INFO Step: Remove directory `/nix/temp-install-dir`
 WARN SelfTest([ShellFailed { shell: Sh, command: "\"sh\" \"-lc\" \"exec nix build --option substitute false --option post-build-hook '' --no-link --expr 'derivation { name = \\\"self-test-sh-1773708799474\\\"; system = \\\"x86_64-linux\\\"; builder = \\\"/bin/sh\\\"; args = [\\\"-c\\\" \\\"echo hello > \\\\$out\\\"]; }'\"", output: Output { status: ExitStatus(unix_wait_status(256)), stdout: "", stderr: "error:\n       … while evaluating an expression to select 'drvPath' on it\n         at «internal»:1:552:\n       … while evaluating strict\n         at «internal»:1:552:\n       (stack trace truncated; use '--show-trace' to show the full trace)\n\n       error: cannot open connection to remote store 'daemon': error: read failed: Connection reset by peer\n\n       note: trace involved the following derivations:\n       derivation 'self-test-sh-1773708799474'\n" } }, ShellFailed { shell: Bash, command: "\"bash\" \"-lc\" \"exec nix build --option substitute false --option post-build-hook '' --no-link --expr 'derivation { name = \\\"self-test-bash-1773708799561\\\"; system = \\\"x86_64-linux\\\"; builder = \\\"/bin/sh\\\"; args = [\\\"-c\\\" \\\"echo hello > \\\\$out\\\"]; }'\"", output: Output { status: ExitStatus(unix_wait_status(256)), stdout: "", stderr: "error:\n       … while evaluating an expression to select 'drvPath' on it\n         at «internal»:1:552:\n       … while evaluating strict\n         at «internal»:1:552:\n       (stack trace truncated; use '--show-trace' to show the full trace)\n\n       error: could not connect to any lix socket (tried /nix/var/nix/daemon-socket/socket)\n\n       note: trace involved the following derivations:\n       derivation 'self-test-bash-1773708799561'\n" } }])
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`


## Platform This is on a GitHub Actions runner - [x] Linux: Ubuntu 24.04 ARM - [ ] macOS - [ ] WSL ## Additional information I run the installation with this snippet: ``` if [[ -z $(command -v nix) ]]; then curl --proto '=https' --tlsv1.2 -sSf -L https://install.lix.systems/lix | sh -s -- install --no-confirm --extra-conf " trusted-users = $(whoami) access-tokens = github.com=$GITHUB_TOKEN " fi ``` Since March 17 this now fails to install a working ~~Nix~~ Lix. I tried following the log output suggestion of source-ing nix-daemon.sh [here](https://github.com/msfjarvis/dotfiles/commit/16810680a311a2453b154a5df3aea41b0ad6fc31) but the issue has [persisted](https://github.com/msfjarvis/dotfiles/actions/runs/23234733917/job/67535817595). ## Output <details><summary>Output</summary> ```log sh: 92: [: x86_64-linux: unexpected operator info: downloading installer INFO nix-installer v3.95.0 `lix-installer` needs to run as `root`, attempting to escalate now via `sudo`... INFO nix-installer v3.95.0 INFO Step: Create directory `/nix` INFO Step: Provision Nix INFO Step: Create build users (UID 30001-30032) and group (GID 30000) INFO Step: Configure Nix INFO Step: Create directory `/etc/tmpfiles.d` INFO Step: Configure Nix daemon service INFO Step: Remove directory `/nix/temp-install-dir` WARN SelfTest([ShellFailed { shell: Sh, command: "\"sh\" \"-lc\" \"exec nix build --option substitute false --option post-build-hook '' --no-link --expr 'derivation { name = \\\"self-test-sh-1773708799474\\\"; system = \\\"x86_64-linux\\\"; builder = \\\"/bin/sh\\\"; args = [\\\"-c\\\" \\\"echo hello > \\\\$out\\\"]; }'\"", output: Output { status: ExitStatus(unix_wait_status(256)), stdout: "", stderr: "error:\n … while evaluating an expression to select 'drvPath' on it\n at «internal»:1:552:\n … while evaluating strict\n at «internal»:1:552:\n (stack trace truncated; use '--show-trace' to show the full trace)\n\n error: cannot open connection to remote store 'daemon': error: read failed: Connection reset by peer\n\n note: trace involved the following derivations:\n derivation 'self-test-sh-1773708799474'\n" } }, ShellFailed { shell: Bash, command: "\"bash\" \"-lc\" \"exec nix build --option substitute false --option post-build-hook '' --no-link --expr 'derivation { name = \\\"self-test-bash-1773708799561\\\"; system = \\\"x86_64-linux\\\"; builder = \\\"/bin/sh\\\"; args = [\\\"-c\\\" \\\"echo hello > \\\\$out\\\"]; }'\"", output: Output { status: ExitStatus(unix_wait_status(256)), stdout: "", stderr: "error:\n … while evaluating an expression to select 'drvPath' on it\n at «internal»:1:552:\n … while evaluating strict\n at «internal»:1:552:\n (stack trace truncated; use '--show-trace' to show the full trace)\n\n error: could not connect to any lix socket (tried /nix/var/nix/daemon-socket/socket)\n\n note: trace involved the following derivations:\n derivation 'self-test-bash-1773708799561'\n" } }]) 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` ``` </details>

I'm seeing the same error (could not connect to any lix socket (tried /nix/var/nix/daemon-socket/socket)) in a container environment, and noticed the regression also on that day.

Since my environment is a container, I thought passing --init none to the installer would solve it, but it results in the same error.

I'm seeing the same error (`could not connect to any lix socket (tried /nix/var/nix/daemon-socket/socket)`) in a container environment, and noticed the regression also on that day. Since my environment is a container, I thought passing `--init none` to the installer would solve it, but it results in the same error.
Owner

Indeed, it seems that our installers have some critical bug related to a change we made in the service management files. We are looking into this, I recommend using a versioned installer of the previous version (2.94.1), to do this:

curl --proto '=https' --tlsv1.2 -sSf -L https://install.lix.systems/lix | sh -s -- install --nix-package-url https://releases.lix.systems/lix/lix-2.94.1/lix-2.94.1-x86_64-linux.tar.xz

(for Linux)

Indeed, it seems that our installers have some critical bug related to a change we made in the service management files. We are looking into this, I recommend using a versioned installer of the previous version (2.94.1), to do this: ``` curl --proto '=https' --tlsv1.2 -sSf -L https://install.lix.systems/lix | sh -s -- install --nix-package-url https://releases.lix.systems/lix/lix-2.94.1/lix-2.94.1-x86_64-linux.tar.xz ``` (for Linux)

Am I doing something wrong or does this flag have no effect?

❯ curl -sSf -L https://install.lix.systems/lix | sh -s -- install --nix-package-url https://releases.lix.systems/lix/lix-2.94.1/lix-2.94.1-x86_64-linux.tar.xz
info: downloading installer
 INFO nix-installer v3.95.0
[...]
Am I doing something wrong or does this flag have no effect? ``` ❯ curl -sSf -L https://install.lix.systems/lix | sh -s -- install --nix-package-url https://releases.lix.systems/lix/lix-2.94.1/lix-2.94.1-x86_64-linux.tar.xz info: downloading installer INFO nix-installer v3.95.0 [...] ```
Author

@ofalvai wrote in #1158 (comment):

Am I doing something wrong or does this flag have no effect?

❯ curl -sSf -L https://install.lix.systems/lix | sh -s -- install --nix-package-url https://releases.lix.systems/lix/lix-2.94.1/lix-2.94.1-x86_64-linux.tar.xz
info: downloading installer
 INFO nix-installer v3.95.0
[...]

The installer can't cope with the latest Lix, raito's suggestion downgrades Lix to the stable build before the current one. The installer not changing is expected.

@ofalvai wrote in https://git.lix.systems/lix-project/lix/issues/1158#issuecomment-18236: > Am I doing something wrong or does this flag have no effect? > > ```text > ❯ curl -sSf -L https://install.lix.systems/lix | sh -s -- install --nix-package-url https://releases.lix.systems/lix/lix-2.94.1/lix-2.94.1-x86_64-linux.tar.xz > info: downloading installer > INFO nix-installer v3.95.0 > [...] > ``` The installer can't cope with the latest Lix, raito's suggestion downgrades Lix to the stable build before the current one. The installer not changing is expected.
Owner

For now, the installers have been roll backed to 2.94.0, @msfjarvis @ofalvai @ninanomenon could you confirm this resolved your issues for now?

For now, the installers have been roll backed to 2.94.0, @msfjarvis @ofalvai @ninanomenon could you confirm this resolved your issues for now?

Can confirm, thank you for the quick workaround ❤️

Can confirm, thank you for the quick workaround ❤️
Author

Also fixed for me.

Also fixed for me.

@raito works for mee too. Thank you!

@raito works for mee too. Thank you!
Owner

Awesome, closing here. We will ensure that the next installers we will release will not have this regression. Thanks for your patience and reaching out here.

Awesome, closing here. We will ensure that the next installers we will release will not have this regression. Thanks for your patience and reaching out here.
raito closed this issue 2026-03-18 14:04:21 +00:00

@raito let me know if it deserves a ticket, but I think something regressed about this yesterday. As a quick repro, the Dockerfile example from the readme is now failing with this error:

 > [4/5] RUN curl --proto '=https' --tlsv1.2 -sSf -L https://install.lix.systems/lix | sh -s -- install linux   --init none   --no-confirm:
0.296 sh: 92: [: aarch64-linux: unexpected operator
0.296 info: downloading installer
0.773  INFO nix-installer v3.95.0
0.780 Error:
0.780    0: Planner error
0.780    1: Error executing action
0.780    2: Action `configure_init_service` errored
0.780    3: Could not detect systemd; you may be able to get up and running without systemd with `nix-installer install linux --init none`.
0.780       See https://git.lix.systems/lix-project/lix-installer#without-systemd-linux-only for documentation on usage and drawbacks.
0.780
0.780 Location:
0.780    src/cli/subcommand/install/mod.rs:226

Note how I passed the --init none in the RUN command

If I omit the flag, I get an error which is kind of expected (although it used to work previously):

 > [4/5] RUN curl --proto '=https' --tlsv1.2 -sSf -L https://install.lix.systems/lix | sh -s -- install linux   --no-confirm:
0.315 sh: 92: [: aarch64-linux: unexpected operator
0.315 info: downloading installer
0.796  INFO nix-installer v3.95.0
0.797 systemd was not active.
0.797
0.797 If it will be started later consider, passing `--no-start-daemon`.
0.797
0.797 To use a `root`-only Nix install, consider passing `--init none`.
@raito let me know if it deserves a ticket, but I think something regressed about this yesterday. As a quick repro, the [Dockerfile example from the readme](https://git.lix.systems/lix-project/lix-installer#in-a-container) is now failing with this error: ``` > [4/5] RUN curl --proto '=https' --tlsv1.2 -sSf -L https://install.lix.systems/lix | sh -s -- install linux --init none --no-confirm: 0.296 sh: 92: [: aarch64-linux: unexpected operator 0.296 info: downloading installer 0.773 INFO nix-installer v3.95.0 0.780 Error: 0.780 0: Planner error 0.780 1: Error executing action 0.780 2: Action `configure_init_service` errored 0.780 3: Could not detect systemd; you may be able to get up and running without systemd with `nix-installer install linux --init none`. 0.780 See https://git.lix.systems/lix-project/lix-installer#without-systemd-linux-only for documentation on usage and drawbacks. 0.780 0.780 Location: 0.780 src/cli/subcommand/install/mod.rs:226 ``` Note how I passed the `--init none` in the `RUN` command If I omit the flag, I get an error which is kind of expected (although it used to work previously): ``` > [4/5] RUN curl --proto '=https' --tlsv1.2 -sSf -L https://install.lix.systems/lix | sh -s -- install linux --no-confirm: 0.315 sh: 92: [: aarch64-linux: unexpected operator 0.315 info: downloading installer 0.796 INFO nix-installer v3.95.0 0.797 systemd was not active. 0.797 0.797 If it will be started later consider, passing `--no-start-daemon`. 0.797 0.797 To use a `root`-only Nix install, consider passing `--init none`. ```
Owner

That looks indeed wrong, thanks for the report. We will be looking into that ASAP.

That looks indeed wrong, thanks for the report. We will be looking into that ASAP.
Sign in to join this conversation.
No milestone
No project
No assignees
4 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
lix-project/lix#1158
No description provided.