Как найти путь деривации в магазине, начиная с пути скомпилированного пакета? - PullRequest
2 голосов
/ 17 июня 2019

Я использую Nix 2.2.1, в частности этот образ NixOS Docker.

Я устанавливаю Vim так:

# nix-env --install --file '<nixpkgs>' vim

Путь к хранилищуисполняемый файл Vim:

# readlink -f $(which vim)
/nix/store/8ayymgnlv77p0h8skf294323maabwq91-vim-8.1.0675/bin/vim

Теперь я хочу узнать путь к производному в хранилище по пути скомпилированного пакета.

Я попробовал эту команду

# nix-store --query --deriver $(readlink -f $(which vim))
/nix/store/q5zqdr193d8k5w91lb9wqr1wk3418zix-vim-8.1.0675.drv

Это вернул путь в магазине, но, к моему удивлению, путь не существовал!В хранилище есть деривация для vim, но она не совпадает с выводом команды.

Я также попробовал это:

# nix-env --query --drv-path --file '<nixpkgs>' vim

Но это не дает пользырезультат:

vim-8.1.0675  -

Я использую неправильные команды или это ошибка?

1 Ответ

1 голос
/ 17 июня 2019

Ваш nix-store вызов выглядит нормально.

Файлы деривации могут собираться мусором, если вы не установите keep-derivations = true в nix.conf или nix.extraOptions в NixOS . Это может объяснить ситуацию.

...