Nix Installation Guide: Difference between revisions

m Add missing `[`
Removed the test changes for solving the problem
 
(3 intermediate revisions by the same user not shown)
Line 187: Line 187:


Note that in Debian [https://packages.debian.org/bookworm/nix-setup-systemd Bookworm] <code>/etc/nix/nix.conf</code> will contain <code>sandbox = false</code>, but in Debian [https://packages.debian.org/trixie/nix-setup-systemd Trixie], sandbox mode is enabled by default. (See the Changelog for details.)
Note that in Debian [https://packages.debian.org/bookworm/nix-setup-systemd Bookworm] <code>/etc/nix/nix.conf</code> will contain <code>sandbox = false</code>, but in Debian [https://packages.debian.org/trixie/nix-setup-systemd Trixie], sandbox mode is enabled by default. (See the Changelog for details.)
=== Configure user and/or desktop ===
To start installed nix applications from the command line, add the <code>~/.nix-profile/bin</code> to <code>PATH</code>.
To give the Desktop access the nix application data add the <code>~/.nix-profile/share</code> to <code>XDG_DATA_DIRS</code>.
For example include the following snippet in <code>~/.profile</code> of the user:
<syntaxHighlight lang="console">
### set PATH so it includes user's nix bin if it exists
if [ -d "$HOME/.nix-profile/bin" ] ; then
    PATH="$HOME/.nix-profile/bin:$PATH"
fi
### set XDG_DATA_DIR so it includes user's nix share if it exists
if [ -d "$HOME/.nix-profile/share" ] ; then
    XDG_DATA_DIRS="$HOME/.nix-profile/share:$XDG_DATA_DIRS"
fi
</syntaxHighlight>
Used source: https://imranmustafa.net/nix-on-debian/
=== Troubleshooting ===
During the <code>nix-build</code> command following the https://nix.dev/tutorials/nixos/nixos-configuration-on-vm#creating-a-qemu-based-virtual-machine-from-a-nixos-configuration
an error could occur like:
<code>...linux-6.12.39-modules-shrunk/lib' is not in the Nix store</code> whilst the directory is present in the <code>/nix/store/</code> directory.
A possible solution is to upgrade nix and nix-daemon applications because the distributed nix version is older, quite older with Debian [https://packages.debian.org/bookworm/nix-setup-systemd Bookworm], than the current nix version:
1) Define the config at <code>~/.config/nixpkgs/config.nix</code>:
<syntaxHighlight lang="console">
with (import <nixpkgs> {});
{
  packageOverrides = pkgs: with pkgs; {
    userPackages = buildEnv {
      extraOutputsToInstall = [ "doc" "info" "man" ];
      name = "user-packages";
      paths = [
        nix
      ];
    };
  };
}
</syntaxHighlight>
To upgrade nix:
<syntaxHighlight lang="console">
nix-env --install --attr nixpkgs.userPackages --remove-all
</syntaxHighlight>
Logout and login the user to see the effects.
2) To use the upgraded <code>nix-daemon</code> application from the previous step in the <code>nix-daemon.service</code>, add a drop-in config file <code>override.conf</code> in <code>/etc/systemd/system/nix-daemon.service.d/</code>:
<syntaxHighlight lang="console">
[Service]
ExecStart=
ExecStart=@/home/myuser/.nix-profile/bin/nix-daemon nix-daemon --daemon
</syntaxHighlight>
Restart the <code>nix-daemon.service</code>
Used source: https://blog.koch.ro/posts/2024-01-16-using-nix-package-manager-in-debian.html


== Windows Subsystem for Linux (WSL) ==
== Windows Subsystem for Linux (WSL) ==