8.38. Pakete installieren

Die Installation von Paketen und die dazugehörigen Aufrufe gehören aus unserer Sicht zu den Aktionen bei der Paketverwaltung, welche am häufigsten genutzt werden. Nachfolgend beschreiben wir, mit welchen Aufrufen Sie Pakete vom Paketmirror beziehen und danach sofort auf Ihrem System installieren. Wie Sie die Paketdateien nur herunterladen, ohne diese zu installieren, lesen Sie in Abschnitt 8.34, „Paketdatei nur herunterladen“.

Für APT und aptitude lässt sich der Vorgang mit „Aufruf von dpkg -i Paketname in der richtigen Reihenfolge“ umschreiben. Dabei erfolgt zudem die Beachtung der jeweiligen Paketabhängigkeiten – noch fehlende und zusätzlich benötigte Pakete werden erkannt und vom Paketmirror mitbezogen. Die Voraussetzung, dass das angegebene Paket bereits im (lokalen) Verzeichnis liegt, muss nicht erfüllt sein.

Wir empfehlen Ihnen, dpkg nur im Ausnahmefall zu benutzen. Der Umgang mit dpkg bzw. das Wissen um die Bibliotheken dahinter (siehe Kapitel 5, APT und Bibliotheken) zählt zum notwendigen Hintergrundwissen, um zu verstehen, was die anderen Werkzeuge wie APT und aptitude überhaupt veranstalten. APT und aptitude erleichtern Ihren Alltag als Systembetreuer jedoch deutlich.

8.38.1. Vorbereitungen

Bevor es mit der Installation von Paketen losgeht, prüfen Sie in Schritt 1, ob noch genügend freier Speicherplatz auf Ihrem Linuxsystem verfügbar ist. Damit schließen Sie von vornherein unvollständig im Paketcache zwischengespeicherte und entpackte Pakete (und insbesondere den damit verbundenen Unmut über den sich daraus ergebenden administrativen Zusatzaufwand) aus.

APT ist sehr nett und rechnet Ihnen sogar aus, wieviel zusätzlicher Speicherplatz benötigt wird, wenn Sie das ausgewählte Paket installieren (Schritt 2). Dazu lesen Sie die Nachricht von APT bzw. aptitude genau. In der vorletzten Zeile zeigt es Ihnen den benötigten Speicherplatz für die neuen Pakete an – im nachfolgenden Beispiel für das Paket kdm sind es immerhin 36MB. Da im Moment nur der benötigte Speicherplatz von Interesse ist, brechen Sie die Installation ab, indem Sie bei der abschließenden Frage die Taste n drücken.

Abgebrochene Installation von kdm mittels APT. 

# apt-get install kdm
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
Die folgenden zusätzlichen Pakete werden installiert:
  kde-wallpapers-default kde-workspace-kgreet-plugins libkworkspace4abi1
Vorgeschlagene Pakete:
  kdepasswd kde-wallpapers
Die folgenden NEUEN Pakete werden installiert:
  kde-wallpapers-default kde-workspace-kgreet-plugins kdm libkworkspace4abi1
0 aktualisiert, 4 neu installiert, 0 zu entfernen und 16 nicht aktualisiert.
Es müssen 33,7 MB an Archiven heruntergeladen werden.
Nach dieser Operation werden 36,3 MB Plattenplatz zusätzlich benutzt.
Möchten Sie fortfahren [J/n]? n
Abbruch.
#

Abgebrochene Installation von kdm mittels aptitude

# aptitude install kdm
Die folgenden NEUEN Pakete werden zusätzlich installiert:
  kde-wallpapers-default{a} kde-workspace-kgreet-plugins{a} kdm libkworkspace4abi1{a}
0 Pakete aktualisiert, 4 zusätzlich installiert, 0 werden entfernt und 16 nicht aktualisiert.
33,7 MB an Archiven müssen heruntergeladen werden. Nach dem Entpacken werden 36,3 MB zusätzlich belegt sein.
Möchten Sie fortsetzen? [Y/n/?] n
Abbruch.
#

Sind Sie sich unsicher, ob die Installation erfolgreich verlaufen würde, simulieren Sie den Vorgang (Schritt 3). Dazu bietet Ihnen APT die Option --simulate und als Alternativen dazu auch --just-print, --dry-run, --recon und --no-act an. aptitude kennt die Option -s bzw. --simulate in der Langform. Die nachfolgende Ausgabe zeigt die Simulation anhand von APT und des Pakets kdm. Dabei bezeichnen die Zeilen der Ausgabe eine Installation eines Pakets, die mit Inst beginnen. Das Schlüsselwort Conf besagt, dass das entsprechende Paket konfiguriert wird.

Simulation der Paketinstallation von kdm

# apt-get install --simulate kdm
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
Die folgenden zusätzlichen Pakete werden installiert:
  kde-wallpapers-default kde-workspace-kgreet-plugins libkworkspace4abi1
Vorgeschlagene Pakete:
  kdepasswd kde-wallpapers
Die folgenden NEUEN Pakete werden installiert:
  kde-wallpapers-default kde-workspace-kgreet-plugins kdm libkworkspace4abi1
0 aktualisiert, 4 neu installiert, 0 zu entfernen und 16 nicht aktualisiert.
Inst kde-wallpapers-default (4:4.8.4-1 Debian:7.6/stable [all])
Inst kde-workspace-kgreet-plugins (4:4.8.4-6 Debian:7.6/stable [i386])
Inst libkworkspace4abi1 (4:4.8.4-6 Debian:7.6/stable [i386])
Inst kdm (4:4.8.4-6 Debian:7.6/stable [i386])
Conf kde-wallpapers-default (4:4.8.4-1 Debian:7.6/stable [all])
Conf kde-workspace-kgreet-plugins (4:4.8.4-6 Debian:7.6/stable [i386])
Conf libkworkspace4abi1 (4:4.8.4-6 Debian:7.6/stable [i386])
Conf kdm (4:4.8.4-6 Debian:7.6/stable [i386])
#

Als Schritt 4 bringen Sie die Paketliste Ihres Linuxsystems auf den aktuellen Stand. Wie das im Detail vorsichgeht, erfahren Sie in Abschnitt 8.41, „Pakete aktualisieren“. Damit stellen Sie sicher, dass Sie mit einer aktuellen Paketliste arbeiten und darüber nur Pakete auswählen, die sich auf dem neuesten Stand befinden. Sie verhindern damit insbesondere, dass Sie veraltete Varianten auf Ihr System einpflegen und reduzieren gleichzeitig den Aufwand bei einer späteren Aktualisierung.

8.38.2. Durchführung

Nachdem alle Vorbereitungen abgeschlossen wurden, folgt nun der Schritt ans Eingemachte – die eigentliche Installation. Für APT lautet der Aufruf apt-get install Paketname und für aptitude in ähnlicher Art und Weise aptitude install Paketname. Beide Werkzeuge verarbeiten nicht nur einzelne Pakete und ganze Paketlisten mit exakten Paketbezeichnungen, sondern auch Paketnamen mit Quantifizierungsoperatoren. Nachfolgender Aufruf zeigt das anhand der Dokumentationspakete zu aptitude, deren Namen mit der Zeichenkette aptitude-doc beginnen. Damit die Shell, die ihr APT-Kommando ausführt, nicht den Parameter mit dem Quantifizierungsoperator interpretiert und nach Dateien mit dem entsprechenden Namen sucht, schließen Sie das Suchmuster in einfache Anführungszeichen ein.

Aufruf von apt-get install mit dem Quantifizierungsoperator *

# apt-get install 'aptitude-doc*'
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
Hinweis: »aptitude-doc-cs« wird für regulären Ausdruck »aptitude-doc*« gewählt.
Hinweis: »aptitude-doc-fi« wird für regulären Ausdruck »aptitude-doc*« gewählt.
Hinweis: »aptitude-doc-en« wird für regulären Ausdruck »aptitude-doc*« gewählt.
Hinweis: »aptitude-doc-es« wird für regulären Ausdruck »aptitude-doc*« gewählt.
Hinweis: »aptitude-doc-fr« wird für regulären Ausdruck »aptitude-doc*« gewählt.
Hinweis: »aptitude-doc-ja« wird für regulären Ausdruck »aptitude-doc*« gewählt.
Hinweis: »aptitude-doc-it« wird für regulären Ausdruck »aptitude-doc*« gewählt.
Hinweis: »aptitude-doc« wird für regulären Ausdruck »aptitude-doc*« gewählt.
Die folgenden NEUEN Pakete werden installiert:
  aptitude-doc-cs aptitude-doc-en aptitude-doc-es aptitude-doc-fi aptitude-doc-fr aptitude-doc-it
  aptitude-doc-ja
0 aktualisiert, 7 neu installiert, 0 zu entfernen und 16 nicht aktualisiert.
Es müssen 2.337 kB an Archiven heruntergeladen werden.
Nach dieser Operation werden 7.642 kB Plattenplatz zusätzlich benutzt.
...
#

Wie aus obiger Darstellung ersichtlich wird, durchläuft die Installation eine Reihe von Einzelschritten. Zunächst prüfen APT bzw. aptitude, ob das angegebene Paket in der Liste der verfügbaren Pakete überhaupt existiert und ob dieses bereits installiert ist. Danach wird ein Installationskandidat festgelegt und dessen Paketabhängigkeiten werden überprüft. Zu klären ist, ob bereits alle Pakete installiert sind, die von diesem abhängen. Falls das nicht zutrifft, werden diese ebenso mit in die Liste der zu installierenden Pakete aufgenommen. Ist die Liste komplett, wird die Gesamtgröße des zusätzlich belegten Speicherplatzes berechnet.

Bestehen keine Unklarheiten über die zu installierenden Pakete, setzen APT bzw. aptitude mit ihrer Arbeit ohne Rückfrage fort. Andernfalls wartet das Programm noch auf Ihr Einverständnis.

Daraufhin werden die Pakete vom Paketmirror bezogen und im Paketcache zwischengespeichert, auf Korrektheit überprüft (siehe Abschnitt 8.32.1, „Prüfung eines Paketes auf Unversehrtheit“), um die notwendigen Sicherheitsaktualisierungen („Fixes“ oder „Security Updates“) ergänzt und danach temporär ausgepackt. Nun erfolgt die Auswertung und Ausführung der preinst-Maintainer-Skripte des Pakets (siehe Abschnitt 4.2, „Aufbau und Format“) und danach werden die Dateien aus dem jeweiligen Paket an die angegebene Stelle im Dateisystem kopiert. Abschließend erfolgen eine (Nach)Konfiguration (siehe Abschnitt 8.40, „Pakete konfigurieren“), sofern das erforderlich ist, und die Ausführung der postinst-Maintainer-Skripte des Pakets (siehe Abschnitt 4.2, „Aufbau und Format“). Ganz am Ende aktualisieren APT bzw. aptitude noch die Paketdatenbank und setzen den Status des Pakets auf „vollständig installiert“ (siehe Abschnitt 8.4, „Paketstatus erfragen“).

8.38.3. Begutachtung

Nach der Installation gilt es zu überprüfen, ob alles glatt ging. Sie erkennen das an den Rück- und Fehlermeldungen der Programme zur Paketverwaltung.

Im Fehlerfall bieten sowohl APT als auch aptitude über die Option -f (Langform --fix-broken) Rettungshilfe an. Dabei werden fehlende Abhängigkeiten nachinstalliert und defekte Pakete eventuell deinstalliert. Einen Paketnamen müssen Sie im Aufruf nicht angeben, da die Paketzustände ausgewertet werden und darüber entschieden wird, was zu tun ist.

8.38.4. Weitere, nützliche APT-Optionen für den Alltag (Auswahl)

APT kennt eine Reihe von Optionen, die in verschiedenen Situationen im Alltag nützlich sein können. Wir stellen Ihnen hier eine Auswahl davon vor.

-y (Langform -assume-yes und --yes)
die interaktiven Fragen zur Installation werden automatisch mit „YES“ bzw. „JA“ beantwortet. Die Option ist das Gegenstück zu --trivial-only.
-d (Langform --download-only)
die Pakete werden nur heruntergeladen, jedoch nicht installiert (siehe Abschnitt 8.34, „Paketdatei nur herunterladen“).
--install-suggests
die vorgeschlagenen Pakete werden mitinstalliert.
--no-install-recommends
die empfohlenen Pakete werden nicht automatisch installiert.
--reinstall
das Paket wird erneut installiert (siehe Abschnitt 8.39, „Pakete erneut installieren“).
--trivial-only
Gegenstück zur Option --assume-yes. Damit werden alle Fragen automatisch mit „NO“ beantwortet und kritische Aktionen bleiben außen vor.
-V (Langform --verbose-versions)
in der Ausgabe erscheint die vollständige Versionsangabe des bezogenen Pakets.

8.38.5. Besonderheiten bei aptitude

Zwischen APT und aptitude bestehen kleine Unterschiede. Dazu zählt auch eine abweichende Vorgehensweise bei Verarbeitung von Paketaktionen. Mit dem Aufruf aptitude install installieren Sie nicht nur alle bereits vorgemerkten Pakete, sondern führen alle bereits vorgemerkten Aktionen zur Aktualisierung des Paketbestands durch. Das kann auch die Aktualisierung und Entfernung von Paketen beinhalten. Ausführlicher gehen wir zu dieser Thematik in Kapitel 11, Mit aptitude Vormerkungen machen ein.

Bei der Benutzung von Ubuntu besteht eine weitere Besonderheit. Diese betrifft die Voreinstellungen, in der festgelegt ist, dass auch die Empfehlungen eines Pakets mit berücksichtigt werden. Verwenden Sie zum Schalter install die Option -R, werden nur die direkten Abhängigkeiten mit installiert. Das Verhalten von aptitude regeln Sie über den Schlüssel APT::Install-Recommends (siehe Abschnitt 10.3, „Konfigurationsdateien von APT im Detail“).

8.38.6. Erweiterungen ab APT 1.1

Ab der Version 1.1 verfügt APT über interessante Erweiterungen. Diese bzw. eine spätere Version ist ab Debian 9 Stretch verfügbar. Damit können die beiden Aufrufe apt install und apt-get install nicht nur Paketnamen verarbeiten, sondern auch Pfade zu lokal vorliegenden deb-Paketen als Parameter benutzen. Im Gegensatz zu gdebi (siehe Abschnitt 6.4.5, „GDebi“) besteht hier keine Beschränkung auf nur ein einziges Paket, sondern es gelten die weiter oben benannten Möglichkeiten zur Spezifikation von Paketen. Ein Beispielaufruf sieht wie folgt aus:

Installation eines zweier deb-Pakete ab APT 1.1. 

# apt install /tmp/foo.deb ./bar.deb
...
#