Wer unter Ubuntu versucht eine Anwendung über das Terminal aufzurufen, die aktuell nicht auf dem Rechner installiert ist, der bekommt seit geraumer Zeit über command-not-found den Hinweis, welches Paket zu installieren wäre. So erspart man sich die Suchererei über apt-cache search suchbegriff und kann direkt das entsprechende Paket einspielen. Unter Arch-Linux gibt es diese Funktion nicht out of the box, sie lässt sich für die Bash- und Zsh-Shell allerdings ohne allzu großen Aufwand nachrüsten.

Wer command-not-found nicht kennt oder nur sehr selten zu einem Terminal greift, der versteht eventuell nicht, von was ich rede. Daher ein kurzes Beispiel: ruft ihr unter Arch eine Anwendung auf, die es theoretisch gibt, die aber noch nicht installiert ist. Dann bekommt ihr lediglich die Information, dass das Kommando nicht gefunden werden konnte. Ubuntu hingegen gibt die klare Ansage aus, welches Paket fehlt und liefert gleich das entsprechende Kommando mit, es aus den Paketquellen zu installieren.

user@arch:~$ htop bash: htop: Kommando nicht gefunden. user@ubuntu:~$ htop Die Anwendung »htop« ist momentan nicht installiert. Sie können sie durch folgende Eingabe installieren: sudo apt-get install htop

Die Funktion lässt sich nun aber auch unter Arch Linux nachrüsten (der Tipp sollte natürlich auch auf Arch-Derivaten wie Antergos oder Manjaro funktionieren). Dazu müsst ihr das Werkzeug Pkgfile auf eurem System installieren und die von euch eingesetzte Shell über ~/.bashrc oder ~/.zshrc mit dem Aufruf des command-not-found-Handle von Pkgfile verbinden. Damit die Funktion ohne den Neustart des Terminal-Fensters aktiv wird, lasst ihr die Shell am Ende ihre Konfigurationsdatei neu einlesen.

### Pkgfile installieren und aktualisieren $ sudo pacman -S pkgfile $ sudo pkgfile --update ### Für automatischen Abgleich der Daten $ sudo systemctl enable pkgfile-update.timer ### Für Bash-User $ echo "source /usr/share/doc/pkgfile/command-not-found.bash" >> ~/.bashrc $ source ~/.bashrc ### Für User mit der Zsh $ echo "source /usr/share/doc/pkgfile/command-not-found.zsh" >> ~/.zshrc $ source ~/.zshrc

Anschließend ist command-not-found umgehend aktiv und erscheint sobald ihr eine Anwendung aufruft, die noch nicht installiert wurde. Alternativ könnt ihr Pkgfile auch von Hand anschmeißen und so herausfinden über welches Paket eine Datei installiert werden könnte ( pkgfile suchbegriff ) oder welche Dateien ein Paket mitbringt, ohne es installieren zu müssen ( pkgfile -l suchbegriff ). Pkgfile sucht in allen Paketquellen, das Angebot des Arch Linux Repository AUR bleibt allerdings außen vor.

user@arch:~$ htop htop may be found in the following packages: extra/htop 1.0.3-2 /usr/bin/htop user@arch:~$ pkgfile htop extra/bash-completion extra/htop user@arch:~$ pkgfile -l htop extra/htop /usr/ extra/htop /usr/bin/ extra/htop /usr/bin/htop [...] extra/htop /usr/share/pixmaps/ extra/htop /usr/share/pixmaps/htop.png