Put this in a vim buffer and in command mode run :w !bash
to execute buffer contents via bash:
If you get something along
/nix/store/61mibb0k5mxnsxzb4x2737cbysn4c5ha-home-manager/bin/home-manager: line 71: NIX_PATH: unbound variable
check if you have run this already:
. ~/.nix-profile/etc/profile.d/nix.sh
In the home.nix this translates to:
profileExtra = ''
. "${config.home.profileDirectory}/etc/profile.d/nix.sh"
'';
nix-shell --show-trace -E 'with import (builtins.fetchTarball { url = "https://github.com/NixOS/nixpkgs/archive/release-20.03.tar.gz";sha256 = "03sifcpkc3prszaycd6snvpxam66phmj0b7m4723l5dmmsyq4bkw";}) {}; mkShell { buildInputs = [ (callPackage ~/.config/nixpkgs/home-sources.nix {}).home-manager ]; }' -I nixpkgs=channel:nixos-20.03 --run "home-manager -I nixpkgs=channel:nixos-20.03 -b backup -f ~/.config/nixpkgs/home.nix switch"
try as well
NIX_PATH=nixpkgs=https://github.com/NixOS/nixpkgs/archive/6834d03bb5614e0bf3b5f272728fdef25e8397c9.tar.gz nix-shell --show-trace -E 'with import <nixpkgs> {}; mkShell { buildInputs = [ (callPackage ~/.config/nixpkgs/home-sources.nix {}).home-manager ]; }' --run "home-manager -b backup -f ~/.config/nixpkgs/home.nix switch"
but then with
{ pkgs ? import <nixpkgs> {} }:
with pkgs;
{
home-manager = let
src = builtins.fetchGit {
name = "home-manager";
url = https://github.com/nix-community/home-manager;
ref = "master";
};
in callPackage "${src}/home-manager" { path = "${src}"; };
}
as nixpkgs tracks a commit from master.
Assuming https://discourse.nixos.org/t/home-manager-installation-questions/7204/5
TODO divnix/digga#10
https://github.com/rycee/home-manager/blob/master/modules/misc/xdg.nix
https://github.com/jonringer/nixpkgs-config/blob/master/vim.nix
https://github.com/NixOS/nixpkgs/blob/d9e6beab26fea286c4d2a31c6c9d52c608214a40/nixos/modules/services/misc/nix-daemon.nix
nix-community/home-manager#1267
https://discourse.nixos.org/t/can-i-run-nix-instantiate-eval-strict-on-my-configuration-nix/7105/3
https://discourse.nixos.org/t/home-manager-real-dry-run/5663
https://tech.ingolf-wagner.de/nixos/nix-instantiate/
https://github.com/rycee/home-manager/blob/0869e237007aa48f458c9d9ba9080280565a7160/doc/release-notes/rl-2009.adoc#state-version-changes
https://github.com/rycee/home-manager/search?q=config.xdg.&unscoped_q=config.xdg.
On behalf of xdg (xdg = { enable = true; }
) https://github.com/jwiegley/nix-config/blob/master/config/home.nix#L632
nix.conf nix-darwin/nix-darwin#149
Troubleshooting
With NIX_PATH=nixpkgs=https://github.com/NixOS/nixpkgs/archive/80097e57c90cd95ef55589a5fa9e06bad51d3746.tar.gz
builder for '/nix/store/a15325qpw668z3h2lz6db718a6h1sz3j-cmake-boot-3.18.4.drv' failed with exit code 2
With (...)d28565a1c6d6127b8bb13c76dbec425c0806ccaf(...)
builder for '/nix/store/jfn9a3x9hjmclm5128sml6cn30m4m5in-llvm-10.0.1.drv' failed with exit code 2
I tried setting (IDK if/how that impacts the build)
nix.useSandbox = false;
nix.trustedBinaryCaches = [ "https://hydra.nixos.org/" ];
in ~/config/nixpkgs/config.nix
and then restarted the build with (latest "green" commit on master, https://status.nixos.org/):
NIX_PATH=nixpkgs=https://github.com/NixOS/nixpkgs/archive/30c2fb65feaf1068b1c413a0b75470afd351c291.tar.gz nix-shell --show-trace -E 'with import <nixpkgs> {}; mkShell { buildInputs = [ (callPackage ~/.config/nixpkgs/home-sources.nix {}).home-manager ]; }' --run "home-manager -b backup -f ~/.config/nixpkgs/home.nix switch"
Fails as well:
RPATH of binary /nix/store/5944gb4vv6d2njpcv9ym1s4nk9i8qm7f-autogen-5.18.16-bin/bin/autogen contains a forbidden reference to /tmp/nix-build-autogen-5.18.16.drv-0/ builder for '/nix/store/s5sjp5mx3qkyp6hjra78w2bjrdhxv2m8-autogen-5.18.16.drv' failed with exit code 1
Trying with home-manager release-20.09
and ("green" commit on release-20.09)
NIX_PATH=nixpkgs=https://github.com/NixOS/nixpkgs/archive/85abeab48b5feda4b163e5bb32f50aad1164e415.tar.gz nix-shell --show-trace -E 'with import <nixpkgs> {}; mkShell { buildInputs = [ (callPackage ~/.config/nixpkgs/home-sources.nix {}).home-manager ]; }' --run "home-manager -b backup -f ~/.config/nixpkgs/home.nix switch"
Failing
RPATH of binary /nix/store/w01la776lpvg0r16bcbwi7l343y4ss0g-autogen-5.18.16-bin/bin/autogen contains a forbidden reference to /tmp/nix-build-autogen-5.18.16.drv-0/ builder for '/nix/store/dryipwqnp3igvk9qb3wnk3y77blg9fpy-autogen-5.18.16.drv' failed with exit code 1
Retrying with nix reinstall
Remove /nix first then use https://releases.nixos.org/nix/nix-2.3.8/install (via https://releases.nixos.org/)
Use as nix.conf:
sandbox = false
trusted-substituters = https://hydra.nixos.org/
allowed-users = me root
use-sqlite-wal = false
If errors:
NIX_PATH=nixpkgs=https://github.com/NixOS/nixpkgs/archive/85abeab48b5feda4b163e5bb32f50aad1164e415.tar.gz nix-shell -p nix-info --run "nix-info -m"
Failing same (autogen) error.
Probably related, also mentioned in HM page NixOS/nix#2033
https://dopp.sk/posts/NixOS_channels/
NixOS/nix#4110 and links therein
Retrying (https://nix.dev/reference/pinning-nixpkgs.html):
NIX_PATH=nixpkgs=http://nixos.org/channels/nixos-20.09/nixexprs.tar.xz:home-manager=https://github.com/nix-community/home-manager/archive/release-20.09.tar.gz ...
Took the hint from NixOS/nixpkgs#106165 to deactivate my overlays first, then reinstalled, succeeded. So first:
cd ~/.config/nixpkgs/overlays
for name in *\.nix; do newname=${name%\.nix}.preinstall-deactivated-nix; mv $name $newname; done
And then (using pinning approach, https://nix.dev/reference/pinning-nixpkgs.html):
NIX_PATH=nixpkgs=http://nixos.org/channels/nixos-20.09/nixexprs.tar.xz:home-manager=https://github.com/nix-community/home-manager/archive/release-20.09.tar.gz nix-shell --show-trace -E 'with import {}; mkShell { buildInputs = [ (callPackage ~/.config/nixpkgs/home-sources.nix {}).home-manager ]; }' --run "home-manager -b backup -f ~/.config/nixpkgs/home.nix switch"
succeeds ! (TODO Find offending overlay or add the one mentioned in NixOS/nixpkgs#106165)
Right now testing:
NIX_PATH=nixpkgs=https://channels.nixos.org/nixpkgs-unstable/nixexprs.tar.xz:home-manager=https://github.com/nix-community/home-manager/archive/master.tar.gz nix-shell --show-trace -E 'with import {}; mkShell { buildInputs = [ (callPackage ~/.config/nixpkgs/home-sources.nix {}).home-manager ]; }' --run "home-manager -b backup -f ~/.config/nixpkgs/home.nix switch"