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.
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
)
update-command-not-found
an
-n
(Kurzform für --no-apt-file
)
apt-file update
nicht aus, bevor die Datenbank aktualisiert wird.
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.