Frequently Asked Questions#

Nix#

How do I add a new binary cache?#

Using NixOS (≥ 22.05):

1nix.settings = {
2  trusted-substituters = [ "https://cache.nixos.org" ];
3  substituters = [ "https://cache.nixos.org" ];
4};

Using NixOS (≤ 21.11):

1nix = {
2  trustedBinaryCaches = [ "https://cache.nixos.org" ];
3  binaryCaches = [ "https://cache.nixos.org" ];
4};

Using Nix:

$ echo "trusted-binary-caches = https://cache.nixos.org" >> /etc/nix/nix.conf
$ nix-build helpers/bench.nix --option extra-binary-caches https://cache.nixos.org

How to operate between Nix paths and strings?#

See http://stackoverflow.com/a/43850372

How to build reverse dependencies of a package?#

$ nix-shell -p nixpkgs-review --run "nixpkgs-review wip"

How can I manage dotfiles in $HOME with Nix?#

See nix-community/home-manager

NixOS#

How to build my own ISO?#

See http://nixos.org/nixos/manual/index.html#sec-building-image

How do I connect to any of the machines in NixOS tests?#

Apply following patch:

diff --git a/nixos/lib/test-driver/test-driver.pl b/nixos/lib/test-driver/test-driver.pl
index 8ad0d67..838fbdd 100644
--- a/nixos/lib/test-driver/test-driver.pl
+++ b/nixos/lib/test-driver/test-driver.pl
@@ -34,7 +34,7 @@ foreach my $vlan (split / /, $ENV{VLANS} || "") {
     if ($pid == 0) {
         dup2(fileno($pty->slave), 0);
         dup2(fileno($stdoutW), 1);
-        exec "vde_switch -s $socket" or _exit(1);
+        exec "vde_switch -tap tap0 -s $socket" or _exit(1);
     }
     close $stdoutW;
     print $pty "version\n";

And then the vde_switch network should be accessible locally.

How to bootstrap NixOS inside an existing Linux installation?#

There are a couple of tools: