Nächste: guix gc
aufrufen, Vorige: Pakete mit mehreren Ausgaben., Nach oben: Paketverwaltung [Inhalt][Index]
guix locate
aufrufenUns steht solch eine Fülle an freier Software zur Verfügung, dass wir früher
oder später suchen müssen, welches Paket wir benötigen. Mit dem Befehl
guix search
, den wir bereits kennengelernt haben (siehe
guix package
aufrufen), können wir anhand von Schlüsselwörtern suchen:
guix search video editor
Manchmal möchte man eher wissen, in welchem Paket eine bestimmte Datei
angeboten wird. Hierfür ist guix locate
das Richtige. So können
Sie z.B. herausfinden, welches Paket den Befehl ls
verfügbar
macht:
$ guix locate ls coreutils@9.1 /gnu/store/…-coreutils-9.1/bin/ls
Natürlich funktioniert es auch mit anderen Dateien, nicht nur für Befehle:
$ guix locate unistr.h icu4c@71.1 /gnu/store/…/include/unicode/unistr.h libunistring@1.0 /gnu/store/…/include/unistr.h
Sie können auch glob-Muster mit Platzhaltern verwenden. Zum Beispiel würden Sie so nach Paketen suchen, die .service-Dateien verfügbar machen:
$ guix locate -g '*.service' man-db@2.11.1 …/lib/systemd/system/man-db.service wpa-supplicant@2.10 …/system-services/fi.w1.wpa_supplicant1.service
Der Befehl guix locate
braucht eine Datenbank, die Dateinamen zu
Paketnamen zuordnet. Nach den Vorgabeeinstellungen wird diese Datenbank
automatisch angelegt, wenn sie noch nicht existiert, wozu die lokal
verfügbaren Pakete betrachtet werden, was ein paar Minuten dauern kann (je
nachdem wie groß Ihr Store und wie schnell Ihr Speichermedium ist).
Anmerkung: Im Moment kann
guix locate
seine Datenbank nur auf lokalem Wissen aufbauen – Pakete außerhalb Ihres Stores werden nicht aufgenommen. Das soll sich noch ändern und dann wird es eine vorerstellte Datenbank herunterladen können, mit der sie auch andere Pakete finden können.
Vorgegeben ist, dass guix locate
zunächst schaut, ob eine
systemweite Datenbank vorhanden ist, in der Regel in
/var/cache/guix/locate. Wenn Sie nicht existiert oder zu alt
ist, wird stattdessen auf eine nutzereigene Datenbank zurückgegriffen,
vorgegeben ist ~/.cache/guix/locate. In einem Mehrbenutzersystem
können Administratoren die Aufgabe übernehmen, regelmäßig die systemweite
Datenbank zu aktualisieren, damit alle Benutzer etwas davon haben, zum
Beispiel mit Hilfe des package-database-service-type
(siehe package-database-service-type
).
Die allgemeine Syntax lautet:
guix locate [Optionen…] Datei…
Dabei ist Datei der Name einer aufzufindenden Datei (genauer gesagt ihr „Basisname“: Dateien, die ein Elternverzeichnis namens Datei haben, landen nicht im Ergebnis).
Folgende Optionen gibt es:
--glob
-g
Datei… werden als glob-Muster aufgefasst – also Muster, die auch Platzhalterzeichen enthalten können wie ‘*.scm’, was alle Dateien aufgreift, die in ‘.scm’ enden.
--stats
Statistiken über die Datenbank zeigen.
--update
-u
Die Datenbank mit den Dateien auf den neuesten Stand bringen.
Nach den Vorgabeeinstellungen wird die Datenbank dann aktualisiert, wenn sie zu alt ist.
--clear
Die Datenbank leeren und neu befüllen.
Mit dieser Befehlszeilenoption können sie von vorn anfangen, so dass alte
Daten nicht mehr in der Datenbank auftauchen. So stellen Sie sicher,
dass die Datenbank nicht endlos anwächst. Nach den Vorgabeeinstellungen für
guix locate
geschieht das regelmäßig automatisch, wenn auch nicht
oft.
--database=Datei
Die Datei als Datenbank benutzen. Wenn nötig, wird sie erzeugt.
Nach den Vorgabeeinstellungen benutzt guix locate
die Datenbank
unter ~/.cache/guix oder /var/cache/guix, je nachdem, welche
neuer ist.
--method=Methode
-m Methode
Nach der Methode auswählen, welche Pakete in den Index aufgenommn werden. Mögliche Werte sind:
manifests
Dies ist die vorgegebene Methode: Für sie werden die Profile auf der Maschine betrachtet und die darin vorkommenden Pakete ermittelt – das sind die Pakete, die Sie oder andere Benutzer derselben Maschine direkt oder indirekt installiert haben. Das geht schnell, aber Pakete, die aus anderem Grund im Store sind, fehlen, wenn kein Profil darauf verweist.
store
Diese Methode ist langsamer, aber gründlicher: Alle Pakete, die im Store vorhanden sind, werden in die Datenbank aufgenommen.
Nächste: guix gc
aufrufen, Vorige: Pakete mit mehreren Ausgaben., Nach oben: Paketverwaltung [Inhalt][Index]