cat tmp.3

Pude reproducir esto en NixOS.

Su NIX_PATHestablece nixpkgsen /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs, que si busca es solo un enlace simbólico a /nix/var/nix/profiles/per-user/root/channels/nixos/. Probablemente sea un pequeño truco hacer que funcionen todas las expresiones que están en la naturaleza que esperan que apunte a una ruta de canal válida (aunque no creo que sea un requisito para un sistema nix y parece originarse de nix -demonio).

Para solucionarlo, debe redefinir NIX_PATHpara que apunte a un canal nixpkgs real o debe indicar explícitamente la ruta al canal en lugar de usar en su expresión.

Puedes encontrar tus canales disponibles en~/.nix-defexpr:

$tree -l -L 2 ~/.nix-defexpr/
/home/user1/.nix-defexpr/
├── channels -> /nix/var/nix/profiles/per-user/user1/channels
│   ├──...
│   └── nixpkgs -> /nix/store/qz1.../nixpkgs
└── channels_root -> /nix/var/nix/profiles/per-user/root/channels
    ├──...
    └── nixos -> /nix/store/53b.../nixos

(channelscontiene los canales específicos del usuario -mientras que channels_rootcontiene los canales a los que se suscribió la raíz y están disponibles para todos los usuarios)

Entonces, si decidiera usar la suscripción del usuario1 a nixpkgs, ejecutaría:

NIX_PATH="nixpkgs=/home/user1/.nix-defexpr/channels/nixpkgs" nix-env -f default.nix -i

-4
08.10.2017, 09:30
0 ответов

Теги

Похожие вопросы