Wer unter Debian lieber auf der Kommandozeile zu Hause ist als in der bunten Welt der GUIs, der wird seine Aufgaben der Paketverwaltung vermutlich mittels APT, Aptitude und DPKG erledigen. Was macht ihr, wenn ihr unter Debian ein Paket installieren wollt, aber den genauen Paketnamen nicht (mehr) wisst? Ich nutze dann apt search
. Alternativ kann man auch apt-cache search
nutzen, dass sich lediglich in der Formatierung der Ausgabe unterscheidet und eine sicherere Verwendung in Scripten gewährleistet als apt search
.
Um effektiv nach Paketen suchen zu können, sind die vorhandenen Befehle ohne zusätzliche Parameter aber meist nicht besonders zielführend.
Ohne Eingrenzung untauglich
Wer schon einmal eine Suche nach
apt search git
gestartet hat, wird sich gewundert haben, dass er viele Treffer erhält, die vermeintlich nichts mit dem Suchbegriff zu tun haben. Das liegt daran, dass der Suchbegriff nicht weiter eingegrenzt wurde. Es werden Pakete gefunden, die den String git
im Namen haben (also z. B. auch digital) oder bei denen git
in der Paketbeschreibung vorkommt. Sucht man etwa mit diesem Befehl, so erhält man fast 10.000 Treffer
ft@blue:~$ apt search git | wc -l
9608
Zur Eingrenzung können reguläre Ausdrücke (Regex) zum Einsatz kommen. So sorgt
apt search ^git$
dafür, dass ein Paket gesucht wird, das mit g
beginnt, mit einem i
fortfährt und mit einem t
endet. Das begrenzt die Suche auf genau diesen Suchbegriff. Möchte man aber auch zusammengesetzte Paketnamen wie etwa qgit
oder libnoggit-java
finden, so empfiehlt sich
apt search --names-only git | less
oder verkürzt
apt search -n git | less
um alle Vorkommen zu finden, die git
im Namen haben. Damit reduziert sich die Zahl der Treffer immerhin um die Hälfte im Vergleich zur Suche ohne -n
auf ~ 5.000. Zur besseren Übersicht wurde hier der Pager less
genutzt.
Wenn wir uns nicht genau an den Paketnamen erinnern, können auch zwei Suchbegriffe kombiniert werden. Schauen wir einmal, was das mit und ohne -n
bewirkt:
ft@blue:~$ apt search lint rpm
Sortierung… Fertig
Volltextsuche… Fertig
cmake-fedora/unstable,testing 2.7.2-1 all
Set of scripts and cmake modules that simplify the release process
debaux/unstable,testing 0.1.12-1.1 all
Debian-Hilfsprogramme
rpmlint/unstable 1.11-0.2 all
RPM package checker
Und nun mit -n:
ft@blue:~$ apt search -n lint rpm
Sortierung… Fertig
Volltextsuche… Fertig
rpmlint/unstable 1.11-0.2 all
RPM package checker
Ist der Name gänzlich entfallen, aber eine Kategorie bekannt, so können wir auch danach suchen:
apt search metasearch engine
Sortierung… Fertig
Volltextsuche… Fertig
python3-searx/unstable,testing 0.18.0+dfsg1-1 all
Privacy-respecting metasearch engine - library package
searx/unstable,testing 0.18.0+dfsg1-1 all
Privacy-respecting metasearch engine
Wenn ihr wissen wollt, ob die Fundstelle auch dem gesuchten Paket entspricht, so hilft euch die Ausgabe der Paketbeschreibung mit apt show [Paketname]
weiter.
Nur am Rande
Ein Dauerbrenner in Debian-Foren und Chats ist die Diskussion, ob apt
oder aptitude
das bessere Werkzeug als Frontend für DPKG ist, denn aptitude
bietet sogar eine mächtigere Suche. Die Frage stellt sich für mich so allerdings nicht, da ich über die Jahre festgestellt habe, dass aptitude
bei Upgrades in Debian Stable gut funktioniert, während es bei schnell wechselnden Paketbeständen oft klüger ist als es sein sollte und apt
oft besser mit der Auflösung komplizierter Upgrade-Situationen klarkommt als aptitude
. Letzteres nutze ich nur, wenn ich komplexe Abfragen tätigen muss. So listet etwa der Befehl
aptitude search '?narrow(?installed, !?archive(stable))'
nur Pakete auf, die aus einem anderen Zweig als Stable installiert wurden.
Schreibe einen Kommentar