Antes de eu responder a este, gostaria de explicar como a nomeação de pacotes funciona no Nix.
O nome ao qual você está se referindo é o nome da derivação, que não é exclusivo (vários pacotes compilados de maneiras diferentes podem ser git-1.9.0
).
Se você quiser referenciar um pacote de maneira única, o atributo set name é o caminho.
Para imprimir o nome do conjunto de atributos durante a consulta (note -P
:
nix-env -qaP | grep git
Para atualizar um pacote por nome exclusivo:
nix-env -uA git
No seu caso, isso é resultado do fato de ambos os pacotes serem chamados de git-version
. Nix resolve qual deles é escolhido por prioridade. Para menor prioridade para o único, defina:
nix-env --set-flag priority 10 git
nix-env -u