La causa principal fue que ya no se estableció una contraseña para mi usuario. ejecuté:
sudo journalctl -b | grep pam
Y me di cuenta:
lightdm[1193]: gkr-pam: no password is available for user
Luego, el problema se resolvió ejecutando passwd
en la terminal y configurando una nueva contraseña.
Su expresión funciona para mí en el maestro actual de nixpkgs. Investigaría si su NIX_PATH
no está tomando algún <nixpkgs>
antiguo que no esperaba, p. geopandas
no está presente en la rama estable 17.09.
Pude reproducir esto en NixOS.
Su NIX_PATH
establece nixpkgs
en /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 <nixpkgs>
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_PATH
para que apunte a un canal nixpkgs real o debe indicar explícitamente la ruta al canal en lugar de usar <nixpkgs>
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
(channels
contiene los canales específicos del usuario -mientras que channels_root
contiene 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