Useful Nix

nix-index

nix-index — это утилита, которая позволяет быстро определить, какой пакет из Nixpkgs содержит определённый файл. Она создаёт локальную базу данных, индексируя содержимое всех пакетов, доступных в бинарных кешах Nix.

Допустим, вы хотите найти, какой пакет содержит исполняемый файл hello. После создания индекса можно выполнить:

hello.out 29,488 x /nix/store/<hash>-hello-<version>/bin/hello linuxPackages_4_4.dpdk.examples 2,022,224 x /nix/store/<hash>-dpdk-<version>-examples/bin/helloworld ...

Это особенно полезно, когда вы знаете имя файла, но не уверены, в каком пакете он находится.

Основной недостаток nix-index заключается в том, что перед первым использованием необходимо создать индекс, что может занять значительное время и ресурсы, особенно на системах с ограниченными возможностями.

Чтобы избежать необходимости локальной индексации, можно воспользоваться проектом nix-index-database. Он предоставляет предварительно сгенерированные базы данных для различных каналов Nixpkgs, обновляемые еженедельно.