Ich verwende einen Nix-Paketmanager unter NixOS . Angenommen, ich möchte ein Paket installieren, das eine Datei bereitstellt libgtk-x11-2.0.so.0
. Wie finde ich ein Paket, das diese Datei enthält, ähnlich wie andere GNU / Linux-Distributionen ?
Derzeit muss ich die Datei googeln und herausfinden, zu welchem Paket es gehören könnte, und das entsprechende Paket im Nix-Repository finden, aber ich hätte gerne eine idiomatischere Methode.
package-management
nixos
nix
Mirzhan Irkegulov
quelle
quelle
yum
unddnf
in RPMland) können Sie "install file" sagen, sie finden das richtige Paket und installieren dieses.$ command-not-found foo
). Beachten Sie, dass das Durchsuchen von nix-Dateien (zB mit ctags) dort nicht hilft. Sie müssen den Build ausführen, um herauszufinden, was er installiert.INSTALL
Datei des Pakets (für das Sie die Umgebung erstellen möchten), nämlich des AbschnittsRequirements
/Dependencies
für die Pakete, die Sie vorinstallieren müssen. Dann suchen Sie nach den Paketen innixpkgs
. (Mit anderen Worten, bei Paketmanagern geht es um Pakete, nicht um Dateien ...)yum provides '*/bin/grep'
oderdnf provides '*/bin/grep
oderapt-file search 'fprintf.3.gz'
.Antworten:
nix-index ist was du brauchst.
Installieren und erstellen Sie den Index:
Suchen Sie
libgtk-x11-2.0.so.0
:Ausgabe:
In der letzten Zeile steht, dass das Paket
gtk+-2.24.31
mit dem Attributpfadgnome2.gtk
diese Datei enthält.quelle
In der Dokumentation sieht es nicht so aus, als gäbe es eine einfache Möglichkeit, dies zu tun.
Mit yum-basierter Distribution können Sie
yum provides $file
apt-file installieren und in apt-get distro können Sie apt-file installieren und tun,apt-file $file
aber ich kann kein Äquivalent in sehennix-env -q
.quelle