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
Hi,
leider funktioniert die Anleitung nicht mit Manjaro. Der Grund:
(Zitat aus dem Manjaro-Forum)
Wieder mal eine mehr als „Hammer“ Anleitung. Sehr sehr gut.
Cool, finde das schon praktisch, weil ich noch nicht soooo fit bin!
Funktioniert unter Manjaro nicht – Schade
Hallo Pitt, sehe eigentlich keinen Grund, warum das mit Manjaro nicht funktionieren sollte. Woran scheitert es? Grüße, Christoph.