Tutorial

Linux-Paketmanager mit der Shell verwalten

01.07.2015 von David Wolski
Zum Erfolgsrezept von Debian und damit auch von Ablegern wie Ubuntu gehört die Paketverwaltung über das Advanced Package Tool, kurz APT. Grafische Oberflächen gibt es dazu zuhauf, aber nur in der Shell kann APT alle Vorzüge ausspielen.

Die Installation und Aktualisierung von Programmen aus Online-Paketquellen ist die einfachste Methode, eine Linux-Distribution mit den gewünschten Programmen auszustatten und aktuell zu halten. Was heute so selbstverständlich erscheint, war nicht immer so einfach: In den Anfangsjahren von Linux gehörte Software-Installation zu den härteren Nüssen, die es durch die manuelle Suche nach den verlangten Bibliotheken und vorausgesetzten Programmen zu knacken galt.

Der Paketmanager APT (Advanced Packaging Tool) für das DEB-Format ist mit seinen Tools eine der großen Errungenschaften von Debian, die Ubuntu und Co. geerbt haben. Als eine der ersten Distributionen bekam Debian vor 15 Jahren mit APT einen Werkzeugkasten für die Suche und Installation von Paketen aus Online-Repositories, der Aktualisierung und Paketabhängigkeiten selbständig auflöst. Dabei ist APT nur eine Paketverwaltung und damit eine Ergänzung für das Rahmenwerk des Paketmanagers dpkg. APT hält aber eine eigene Liste der verfügbaren Pakete aus Online-Paketquellen (Repositories) vor und ist so komfortabel, dass Debian/Ubuntu-Anwender eher mit APT als mit dpkg in Berührung kommen.

Während Einsteiger mit grafischen Front-Ends wie Synaptic oder dem vergleichsweise umständlichen Ubuntu Software Center erst mal gut bedient sind, liefern die Kommandozeilen-Tools apt-get und apt-cache viele clevere Lösungen zur Paketverwaltung für anspruchsvolle Anwender.

Genaue Suche: Pakete gezielter finden

Eine Suche in der Liste verfügbarer Pakete mit dem Kommando

apt-cache search [Suchbegriff]

durchsucht Paketnamen und zugehörige Beschreibungen (Beispiel: apt-cache search putty). Die resultierende Liste ist lang und enthält nicht nur relevante Einträge. Für einen ersten Überblick ist dies ausreichend, aber wer ein bestimmtes Software-Paket aufspüren will, braucht feinere Suchergebnisse. Nur in den Paketnamen und nicht auch noch in den Beschreibungen suchen Sie mit

apt-cache search --names-only [Suchbegriff]

präziser. Ebenfalls genauer machen mehrere Suchbegriffe eine Suche, die apt-cache automatisch als UND-Suche interpretiert:

apt-cache search --names-only [Suchbegriff1] [Suchbegriff2]

Ein Filtern der Ergebnisse mit grep ist möglich, aber meist nicht nötig.

Die Kurzbeschreibung von „apt-cache search [Suchbegriff]“ ist stets sehr knapp gehalten und nicht immer aussagekräftig, während das grafische Tool Synaptic immer eine längere Beschreibung liefert. Diese Beschreibung kann auch apt in der Kommandozeile mit dem Befehl

apt-cache show [Paketname]

abrufen. Mit APT 1.0 (ab Ubuntu 14.04, Mint 17, Debian 8) reicht dazu einfach der Befehl

apt show [Paketname]

aus.

Nadel im Heuhaufen: Eine Suche nach einer einzelnen Datei in den verfügbaren Paketen ist mit dem Zusatz-Tool apt-file möglich, das seine eigene Datenbank unterhält.

Welches Paket enthält das gesuchte Programm genau? Es nicht immer offensichtlich, welche Pakete und Systembibliotheken ein Programm mitbringt. Zwar ist in der Paketdatenbank von APT die Beziehung von Paketen untereinander genau beschrieben, genaue Angaben zu enthaltenen Dateien sind aber nicht gespeichert. Deshalb gibt es für Debian und Ubuntu das Extra-Tool apt-file, welches Sie nachinstallieren sollten:

sudo apt-get install apt-file

Das frisch installierte Tool hat noch keine Ahnung von verfügbaren Programmpaketen und Dateien, deshalb müssen Sie apt-file erst mit den Repositories vertraut machen:

sudo apt-file update

Dabei baut apt-file seine eigene Datenbank auf, in der Sie anschließend mit

apt-file search [Dateiname]

nach den benötigten Programmpaketen suchen können.

Die wichtigsten Praxis-Tipps für apt-get

Bei der Fernwartung von Servern über das Netzwerk mittels SSH kann es vorkommen, dass die Netzwerkverbindung während einer Paketaktualisierung abbricht. In ungünstigen Fällen sind nach einem unterbrochenen Upgrade nur einige neuere Pakete installiert und nicht alle Abhängigkeiten aufgelöst. Mit der Eingabe des Befehls

sudo apt-get -f install

reparieren Sie unvollständige Abhängigkeiten und bringen mit

sudo apt-get dist-upgrade

die Paketdatenbank wieder in einen konsistenten Zustand, um danach mit

sudo apt-get dist-upgrade

das Upgrade fortzusetzen.

Immer mit sudo ausführen: Diese Alias-Definition in der Datei „.bashrc“ der Shell ergänzt automatisch bei jedem Aufruf von apt-get das benötigte vorangestellte sudo.

Immer als root mit Alias für apt-get: Mit einer Alias-Definition in der Shell bekommt jeder Aufruf von apt-get automatisch ein sudo vorangestellt. Öffnen Sie dazu die Datei „.bashrc“ in Ihrem Home-Verzeichnis mit einem beliebigen Texteditor, und tragen Sie bei den Alias-Definitionen oder am Ende der Datei die Zeile

alias apt-get="sudo apt-get"

ein. Der Alias ist ab einem erneuten Öffnen eines Terminal-Fensters verfügbar. Ab jetzt funktionieren alle Befehle von apt-get auch dann, wenn Sie vergessen haben, diese über sudo aufzurufen.

Die neue Fortschrittsanzeige: Bisher war es bei einem Upgrade nicht absehbar, wie lange die Installation der heruntergeladenen Pakete noch dauert. Mehr Informationen liefert apt-get in Form einer neuen Statusleiste im Terminal, die bei Upgrades den Gesamtfortschritt anzeigt. Diese nette Ergänzung wird ab APT 1.0 (ab Ubuntu 14.04, Linux Mint 17 und demnächst Debian 8) unterstützt und mit der zusätzlichen Konfigurationszeile

Dpkg::Progress-Fancy "1";

aktiviert, die Sie am Ende der Datei „etc/apt/apt.conf.d/99progressbar“ eintragen. Falls die Datei bislang nicht existiert, legen Sie sie mit dieser Zeile neu an.

(PC-Welt/ad)