Pkgfile

Aus wiki.archlinux.de
Wechseln zu: Navigation, Suche

Mit pkgfile können die Pakete der offiziellen Repositorien nach Dateien durchsucht werden. Eine ähnliche Funktionalität ist inzwischen auch in pacman (Option -F und Folgeoptionen) eingebaut, aber alternativ kann weiterhin pkgfile verwendet werden.

Installation

Das Programm ist als pkgfile in extra verfügbar, und kann von dort mittels Pacman installiert werden.

pacman -S pkgfile

Alternativ: pkgfile-gitAUR

Benutzung

Die pkgfile Datenbank aktualisieren.

pkgfile -u

Ein Paket suchen das die Datei makepkg enthält.

pkgfile makepkg
core/pacman

Ist der Dateiname nicht komplett bekannt kann die Option -r verwendet werden. (Suche nach regulären Ausdrücken)

pkgfile -r makep
core/pacman
core/perl
extra/archboot
extra/devtools
extra/namcap

Alle Dateien anzeigen die im Paket archlinux-keyring enthalten sind.

pkgfile -l archlinux-keyring
core/archlinux-keyring	/usr/
core/archlinux-keyring	/usr/share/
core/archlinux-keyring	/usr/share/pacman/
core/archlinux-keyring	/usr/share/pacman/keyrings/
core/archlinux-keyring	/usr/share/pacman/keyrings/archlinux-revoked
core/archlinux-keyring	/usr/share/pacman/keyrings/archlinux-trusted
core/archlinux-keyring	/usr/share/pacman/keyrings/archlinux.gpg

pkgfile -l ist vergleichbar mit pacman -Ql. Der Unterschied besteht darin, dass nicht die lokal installierten, sondern alle Pakete in den Repositorien durchsucht werden.

Unbekannte Befehle

Für die Bash und Zsh enthält pkgfile einen "command not found" Hook, der bei Eingabe eines unbekannten Befehls automatisch die Pakete durchsucht.

abiword
abiword may be found in the following packages:
  extra/abiword 3.0.1-2	/usr/bin/abiword

Aktiviert wird der Hook durch einen Eintrag in der entsprechenden Shell Konfigurationsdatei.

Bash

~/.bashrc
source /usr/share/doc/pkgfile/command-not-found.bash

Zsh

~/.zshrc
source /usr/share/doc/pkgfile/command-not-found.zsh

Automatische Updates

Um die pkgfile Datenbank automatisch aktuell zu halten kann man den Systemd Service pkgfile-update.timer nutzen.

systemctl enable pkgfile-update.timer

Die Datenbank wird damit täglich aktualisiert. Um das Zeitintervall zu ändern kann die entsprechende Unit Datei angepasst werden.