// Datei: ./werkzeuge/paketoperationen/pakete-installieren.adoc

// Baustelle: Rohtext

[[pakete-installieren]]
=== Pakete installieren ===

// Stichworte für den Index
(((Paket, 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 <<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
<<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.

==== 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 kbd:[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.
#
----

// Stichworte für den Index
(((apt-get, install --dry-run)))
(((apt-get, install --just-print)))
(((apt-get, install --no-act)))
(((apt-get, install --recon)))
(((apt-get, install --simulate)))
(((aptitude, install -s)))
(((aptitude, install --simulate)))

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
<<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.

==== Durchführung ====

// Stichworte für den Index
(((apt-get, install)))
(((aptitude, install)))

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.

// Stichworte für den Index
(((Maintainer-Skripte, postinst)))
(((Maintainer-Skripte, preinst)))
(((Security Updates)))

Daraufhin werden die Pakete vom Paketmirror bezogen und im Paketcache
zwischengespeichert, auf Korrektheit überprüft (siehe
<<bezogenes-paket-verifizieren>>), 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
<<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 <<pakete-konfigurieren>>),
sofern das erforderlich ist, und die Ausführung der
`postinst`-Maintainer-Skripte des Pakets (siehe <<aufbau-und-format>>).
Ganz am Ende aktualisieren APT bzw. `aptitude` noch die Paketdatenbank
und setzen den Status des Pakets auf ``vollständig installiert'' (siehe
<<paketstatus-erfragen>>).

==== 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.

// Stichworte für den Index
(((aptitude, -f)))
(((aptitude, --fix-broken)))

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.

==== 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
<<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 <<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.

==== 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 <<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
<<konfigurationsdateien-von-apt>>).

==== Erweiterungen ab APT 1.1 ====

// Stichworte für den Index
(((apt, install)))
(((apt-get, install)))
(((gdebi)))

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
<<gui-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
...
#
----

// Datei (Ende): ./werkzeuge/paketoperationen/pakete-installieren.adoc
