Package Details: nix 2.3.1-1

Git Clone URL: (read-only)
Package Base: nix
Description: A purely functional package manager
Upstream URL:
Licenses: LGPL
Submitter: None
Maintainer: asppsa (shaugh)
Last Packager: asppsa
Votes: 65
Popularity: 1.675812
First Submitted: 2008-04-12 18:35
Last Updated: 2019-10-15 11:13

Latest Comments

« First ‹ Previous 1 2 3 4 5 6 7 Next › Last »

immae commented on 2019-05-05 16:07

(Note: I’m very sorry too about the editline versus readline dependency, since readline is better built and better features than editline. But nix needs to be fixed to be usable with readline)

immae commented on 2019-05-05 15:56

@asppsa: Only a /bin/sh is ever absolutely required in the sandbox, everything in nix is done for that. In my opinion, anything else should not be here and be compiled directly via nix derivations (I’m building full featured nixos-systems with only that, so I’m confident about this opinion). In any case, I think it’s not your job as a packager to provide with more than a /bin/sh by default (note that the compile-time option is overridable in /etc/nix/nix.conf, so it can be overriden if someones wants to)

The problem with readline is only apparent when you use "nix repl" (the interactive nix): the "tab" (completion) doesn’t work at all and provokes crashes, which makes the whole repl useless

asppsa commented on 2019-05-05 14:31

@immae, is editline better than readline somehow? I hesitate to add this as a dependency, as it means an additional package for people to compile when readline is already available.

Concerning dash, I didn't quite grasp the significance of that before, but I'll look into it now. Do you have any thoughts on the other binaries that are apparently required in the sandbox (tar, xz, coreutils)?

immae commented on 2019-05-05 12:00

@asppsa: I proposed a solution below to (fix readline and) use static dash for sandboxing (because busybox is not a good solution, for the reasons your gave, and it needs to be static because it will end in a sandboxed path), you may want to have a look:

asppsa commented on 2019-05-05 11:54

Ok, so I am wrong my busybox solution doesn't work because busybox doesn't provide bash. A solution is to add something like /usr/bin/bash=/nix/store/..../bin/bash to the build-sandbox-paths line.

Even once this is set though, the command will still fail due to "mv", "mkdir", "tar" and "xz" all being required as well ... these can also be gotten from busybox, or from the nix "coreutils", "gnutar" and "xz" packages.

asppsa commented on 2019-04-30 04:40

@renato_garcia, good find. I think you can fix this by specifying both the locations of sh and bash in /etc/nix/nix.conf:

build-sandbox-paths = /bin/sh=/usr/bin/busybox /usr/bin/bash=/usr/bin/busybox

This appears to be working for me, at least... I also have a script that can set up sandboxing paths here, but I haven't tested it in some time, so can't say how well it will work! This script tries to set the locations of a bunch of other tools that were needed for sandboxed compiling ... not sure if these requirements are still current.

renato_garcia commented on 2019-04-29 23:06 It looks like there is a bug on this: commented on 2019-04-18 18:14

I get this error while installing nix-2.2.1-1. What could I do to resolve the error?

(1/1) installing nix                                                   [########################################] 100%
Initializing default nix channel
unpacking channels...
error: while setting up the build environment: getting attributes of path '': No such file or directory              
error: program '/usr/bin/nix-env' failed with exit code 1
To start the nix daemon, execute one of the following:

    systemctl enable nix-daemon.socket       # Sets the daemon to start on next boot                                 
    systemctl enable --now nix-daemon.socket # Starts now and on next boot too                                       

Also, if this is a new install, you need to start a new login shell or otherwise                                     

    source /etc/profile.d/
    source /etc/profile.d/

asppsa commented on 2019-03-13 02:06

@CoolGenie, it looks like you must have manually compiled/installed Nix at some point in the past to /usr/local, and the service file loaded by systemd is left over from that. You can check this with systemctl status nix-daemon.socket. If systemd is using the right file, it should say that it is loaded from /usr/lib/systemd/system/nix-daemon.socket, which is a file installed as part of this package.

CoolGenie commented on 2019-03-12 13:19

I'm getting this error:

Mar 12 14:14:52 lenovo systemd[16819]: nix-daemon.service: Failed at step EXEC spawning /usr/local/bin/nix-daemon: No such file or directory

Any ideas? I don't see nix-daemon anywhere on my system.