Nix Installation Guide: Difference between revisions
Temperoraly change for wiki problem |
Removed the test changes for solving the problem |
||
(2 intermediate revisions by the same user not shown) | |||
Line 188: | Line 188: | ||
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.) | ||
To | === 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) == |