17.2. Neue Software

17.2.1. Ausgangssituation

Das Setup auf ihrem Linux-System umfasst stets nur eine Auswahl an Paketen. Wie Sie wissen, installieren Sie fehlende Pakete bei Bedarf einfach über die Werkzeuge zur Paketverwaltung nach.

Geht es hingegen um unbekannte oder fehlende Werkzeuge, ist nicht immer sofort klar, über welches Debianpaket diese bereitgestellt werden. Wie Sie eine manuelle Suche anstoßen, erklären wir Ihnen ausführlich unter Paket zu Datei finden in Abschnitt 8.24, „Paket zu Datei finden“.

Diesen Schritt zu automatisieren, kann den Prozess der Verwaltung von Software vereinfachen und Zeit sparen. Wir klären nachstehend, wie Sie fehlende Pakete identifizieren und diese einspielen lassen.

17.2.2. Empfehlungen mittels command-not-found

Für einen Hinweis auf der Kommandozeile, welches Paket noch zusätzlich installiert werden müsste, ist das Paket command-not-found [Debian-Paket-command-not-found] die passende Lösung. Es sucht nach aktuell nicht installierten, aber in den Repositories verfügbaren Programmen. Dafür benutzt es eine eigene Datenbank, die im Verzeichnis /var/cache/apt/apt-file liegt.

Für die Bash und die Zsh funktioniert es automatisch. Diese stellen eine Funktion command_not_found_handle bereit, an die das Werkzeug command-not-found andockt. Zur Recherche selbst greift es auf Python3 und das Werkzeug apt-file zurück.

Nach der Installation von command-not-found ist noch ein initialer Schritt erforderlich: die interne Werkzeugdatenbank muß auf den neuesten Stand gebracht werden. Dazu genügt ein Aufruf von apt update. Ohne diesen Schritt meldet die Shell bei Ihnen Handlungsbedarf an.

Erster Aufruf nach der Installation des Paketes command-not-found

$ yum
command-not-found Datenbank konnte nicht gefunden werden. Führen Sie »sudo apt update« aus, um sie zu füllen.
yum: Befehl nicht gefunden.
$

Nach der Aktualisierung der Paketliste mittels apt update zeigt sich die Shell bereits versöhnlicher und liefert ihnen Vorschläge für passende Pakete mit Werkzeugen mit gleichem oder ähnlich klingendem Namen.

Ausgabe von command-not-found nach der Aktualisierung. 

$ yum
Der Befehl 'yum' wurde nicht gefunden, meinten Sie:
  Befehl 'uum' aus dem deb freewnn-jserver
  Befehl 'num' aus dem deb quickcal
  Befehl 'zum' aus dem deb perforate
  Befehl 'sum' aus dem deb coreutils
Versuche: apt install <deb name>
$

Diese zusätzliche Recherche ist schick, kommt aber mit einem kleinen Nachteil. Es entsteht eine Verzögerung, nachdem Sie einen unbekannten Befehl eingetippt haben. Dies beruht darauf, daß das Durchsuchen der Paketdatenbank von command-not-found einen kurzen Moment benötigt. Bei langsameren Systemen ist daher mit einer spürbaren Verzögerung zu rechnen.

Von Zeit zu Zeit ist die Aktualisierung der Datenbank erforderlich, die command-not-found benutzt. Mit Hilfe des Werkzeugs update-command-not-found erfolgt dieser Schritt. Dabei werden die Einträge auf den neuesten Stand gebracht, auf die apt-file zur Recherche zurückgreift.

Aufruf von update-command-not-found

# update-command-not-found
#

Derzeit verfügt update-command-not-found über die folgenden Schalter:

-h (Kurzform für --help)
zeige die Hilfe zu update-command-not-found an
-n (Kurzform für --no-apt-file)
führe das Kommando apt-file update nicht aus, bevor die Datenbank aktualisiert wird.

17.2.3. Fehlendes sofort installieren

Für PackageKit [PackageKit] gibt es ein zusätzliches Paket namens packagekit-command-not-found [Debian-Paket-packagekit-command-not-found]. Dieses sorgt dafür, dass fehlende Software bei Aufruf auf der Kommandozeile automatisch nachinstalliert wird. Es enthält zudem die beiden Werkzeuge pkcon und pkmon zur Installation und zum Monitoring des Paketbestands über die Kommandozeile.