3 ms·
Not a Nix user, but my understanding is that it's a standalone package manager with its own repositories. On a non-Nix distro, installing a package with Nix is
by l3s2d 6y ago
Not a Nix user, but my understanding is that it's a standalone package manager with its own repositories. On a non-Nix distro, installing a package with Nix is akin to installing a Python module with pip, instead of the distro's package manager. It would not be managed at all by the distro's package manager. On NixOS, Nix is the distro's package manager.
- mehrdadn 6y agoThanks, but I already got that much. It doesn't answer my question though. If Ubuntu has made a modification to a package (that's basically the entire point of most distros, otherwise they'd be Arch), should I expect those changes in whatever Nix installs? It also leaves so many other questions unanswered, like what happens if I install GRUB or a new kernel or something else that's supposed to modify the system globally... but that's secondary.
- solarkraft 6y agoNixOS only has nixpkgs modifications, not Ubuntu's, as much as Fedora doesn't have Ubuntu's modifications. My understanding is that packages available for Nix are patched to work within its context, but otherwise kept as original as possible, with optional configuration switches.
- catern 6y agoNo, you should not expect Ubuntu's modifications in packages installed through Nix. Things like GRUB or the kernel version are handled at the level of NixOS, because, as you say, they affect the system globally.
- Fnoord 6y agoThe documentation [1] mentions the possible configuration flags for a package, including Grub (which is not the default bootloader, btw). [1] https://nixos.org/learn.html https://nixos.org/learn.html
- ymse 6y agoNix packages can not modify the system globally, by design. Not even on NixOS. This is why Nix allows unprivileged users to install anything. When you install a package with Nix, all you are doing is drop a symlink in your ~/.nix-profile pointing to some /nix/store/<unique-identifier> item. When you build a package with Nix (also does not require root privileges), it happens inside a container that can only write to /nix/store/<unique-identifier>. The <unique-identifier> is a cryptographic hash based on all the inputs (dependencies) to the package (also /nix/store/<hash> items) as well as the build script.
- mehrdadn 6y agoThis is a really good explanation, thank you!