Używam menedżera pakietów Nix na NixOS . Załóżmy, że chcę zainstalować pakiet, który udostępnia plik libgtk-x11-2.0.so.0
. Jak znaleźć pakiet, który udostępnia ten plik, podobny do innych dystrybucji GNU / Linux ?
Obecnie muszę google znaleźć plik i dowiedzieć się, do którego pakietu może należeć, i znaleźć odpowiedni pakiet w repozytorium Nix, ale chciałbym bardziej idiomatyczną metodę.
package-management
nixos
nix
Mirzhan Irkegulov
źródło
źródło
yum
orazdnf
w RPMland) pozwala powiedzieć „zainstalować plik” one zorientować się w odpowiedni pakiet i zainstalować jeden.$ command-not-found foo
). Zauważ, że wyszukiwanie plików nix (np. Za pomocą ctags) nie pomoże. Musisz wykonać kompilację, aby znaleźć to, co instaluje.INSTALL
pliku pakietu (dla którego chcesz stworzyć środowisko), a mianowicie sekcjiRequirements
/Dependencies
dla pakietów, które musisz mieć wstępnie zainstalowane. Następnie poszukaj pakietów wnixpkgs
. (Innymi słowy, menedżerowie pakietów dotyczą pakietów, a nie plików ...)yum provides '*/bin/grep'
lubdnf provides '*/bin/grep
lubapt-file search 'fprintf.3.gz'
.Odpowiedzi:
Nix-index jest tym, czego potrzebujesz.
Zainstaluj i skompiluj indeks:
Znajdź
libgtk-x11-2.0.so.0
:Wynik:
Ostatni wiersz mówi, że pakiet
gtk+-2.24.31
ze ścieżką atrybutugnome2.gtk
zawiera ten plik.źródło
Przeglądając dokumentację nie wydaje się, że istnieje prosty sposób, aby to zrobić.
Z dystrybucją opartą na yumie możesz zrobić,
yum provides $file
aw dystrybucji apt-get możesz zainstalować apt-file i zrobić,apt-file $file
ale nie widzę odpowiednika wnix-env -q
.źródło