// Datei: ./konzepte/software-in-paketen-organisieren/paketmanagement-als-begriff.adoc

// Baustelle: Fertig
// Axel: Fertig

[[paketmanagement-als-begriff]]
=== Was ist Paketmanagement ===

// Stichworte für den Index
(((Paketmanagement, Begriff)))
Paketmanagement beschreibt die geordnete Verwaltung der einzelnen
Softwarepakete auf ihrem System. Ziel ist dabei, dass Ihr Linux-System
funktionstüchtig und benutzbar bleibt, insbesondere wenn Sie vorhandene
Software aktualisieren, entfernen oder auch neue Software ergänzen.

// Stichworte für den Index
(((Paketmanagement, Paketstatus)))
Es umfasst daher nicht nur den Abgleich der lokalen Paketdatenbank mit
den eingetragenen Paketverzeichnissen (_Repositories_), sondern auch die
Auflistung der verfügbaren und derzeit verwendeten Pakete mit deren
jeweiligen Statusinformation. Dazu gehört etwa die Paketbeschreibung, ob
das Paket vollständig installiert ist und, falls ja, welche Version
derzeit verwendet wird.

// Stichworte für den Index
(((Paketmanagement, Auflösung von Paketabhängigkeiten)))
(((Paketmanagement, Paketauswahl)))
(((Paketmanagement, Paketkonfiguration)))
Weiterhin zählt zum Paketmanagement die automatische Auflösung von
Paketabhängigkeiten. Das vereinfacht die Benutzung erheblich, da Sie die
einzelnen Abhängigkeiten der Pakete nicht vorab recherchieren müssen.
Diese Abhängigkeiten beeinflussen den lokalen Paketbestand und die
Reihenfolge notwendiger Änderungen beim Hinzufügen, Aktualisieren oder
Entfernen einer Paketauswahl. Daran schließen sich die plattform- und
hardwarespezifische Konfiguration vor und nach der Installation von
Paketen über die sogenannten Maintainer-Skripte an, die `dpkg`
automatisch anstößt. Mehr Informationen dazu finden Sie in
<<aufbau-und-format>>.

// Stichworte für den Index
(((Paketbeschreibung)))
(((Paketmanagement, Auflösung von Paketabhängigkeiten)))
(((Paketmanagement, Paketmaintainer)))
Die Distribution selbst bzw. die verantwortlichen Paketmaintainer
kümmern sich bei der Übersetzung und Bereitstellung der Pakete darum,
dass die nachfolgende Zusammenstellung der Paketliste harmonisch ist und
die verschiedenen Versionen der einzelnen Softwarepakete aufeinander
abgestimmt sind. Jedes `deb`-Paket verfügt über eine Beschreibung in
Textform sowie eine Liste der Pakete, von denen es abhängt – bei Bedarf
sogar samt Versionsangabe.

// Stichworte für den Index
(((Paketmanagement, Auflösung von Paketaktualisierung)))
(((Veröffentlichung, Debian Backports)))
(((Versionswechsel, Aktualisierung)))
(((Versionswechsel, Downgrade)))
Die Aktualisierung einer bereits bestehenden, installierten
Softwareversion durch eine andere Version beinhaltet i.d.R. eine
fehlerbereinigte oder erweiterte Variante des Programms. Das kann eine
individuelle Sicherheitsaktualisierung sein, das Installieren eines
sogenannten 'Debian Backports', d.h. eine neuere Paketversion wird für
eine vorherige Veröffentlichung zurückportiert, aber auch im Rahmen
einer Aktualisierung auf eine neue Veröffentlichung der Distribution
(siehe <<veroeffentlichungen>>) stattfinden. Dass letzteres überhaupt
möglich ist, ist noch lange nicht bei allen Distributionen
selbstverständlich. Lange Zeit war dies ein Alleinstellungsmerkmal von
Debian und auch heute noch bieten einige Debian-Derivate diese
Eigenschaft nicht. Gleiches gilt für den Wechsel auf eine zurückliegende
Softwareversion, einen sogenannten 'Downgrade'. Dies wird allerdings
auch bei Debian nicht explizit unterstützt, funktioniert aber dennoch in
den meisten Fällen.

Im Detail erklären wir Ihnen die Thematik unter Pakete aktualisieren
(siehe <<pakete-aktualisieren>>), Distribution aktualisieren (siehe
<<distribution-aktualisieren>>), Paket downgraden (siehe
<<pakete-downgraden>>) und dem Debian Backports Archiv (siehe
<<debian-backports>>).

// Stichworte für den Index
(((dpkg, -l)))
(((Paketmanagement, Auflistung der installierten Pakete)))
Nachfolgende Ausgaben zeigen zweierlei – die Liste aller Pakete am
Beispiel von `dpkg` und die ausführliche Übersicht auf der Basis von
`apt-cache`. Ersteres listet alle installierten Pakete zur
Textverarbeitung Abiword auf. Ersichtlich ist der Installationsstatus
(erste Spalte), der Paketname und die Paketversion (zweite und dritte
Spalte) sowie eine Paketbeschreibung (vierte Spalte). Auf das Werkzeug
`dpkg` gehen wir en detail in den beiden Abschnitten Softwarestapel und
Ebenen (<<softwarestapel-und-ebenen>>) und dpkg (<<dpkg>>) ein.

.Ausgabe aller derzeit installierten Pakete für Abiword mit `dpkg` 
----
$ dpkg -l "abiword*"
Gewünscht=Unbekannt/Installieren/R=Entfernen/P=Vollständig Löschen/Halten
| Status=Nicht/Installiert/Config/U=Entpackt/halb konFiguriert/
         Halb installiert/Trigger erWartet/Trigger anhängig
|/ Fehler?=(kein)/R=Neuinstallation notwendig (Status, Fehler: GROSS=schlecht)
||/ Name                Version        Architektur    Beschreibung
+++-===================-==============-==============-============================================
ii  abiword             2.9.2+svn20120 i386           efficient, featureful word processor with co
ii  abiword-common      2.9.2+svn20120 all            efficient, featureful word processor with co
ii  abiword-plugin-gram 2.9.2+svn20120 i386           grammar checking plugin for AbiWord
ii  abiword-plugin-math 2.9.2+svn20120 i386           equation editor plugin for AbiWord
$
----

// Stichworte für den Index
(((apt-cache, showpkg)))
(((Paketcache)))
(((Paketabhängigkeiten, Auflistung)))
(((Paketsignaturen, Auflistung)))
In Beispiel zwei nutzen wir `apt-cache` mit dem Parameter `showpkg`, um
weitere Details zum Paket 'abiword-common' zu erhalten. Neben der
Versionsnummer sind auch die Paketquelle, die Paketsignaturen sowie die
Abhängigkeiten zu weiteren Paketen genannt. Die Pakete stammen aus dem
'main'-Zweig von Debian 7 'Wheezy', sind für die Architektur i386 kompiliert
und wurden vom deutschen FTP-Server des Debian-Projekts bezogen. Die
einzige Abhängigkeit besteht zum Paket 'abiword'.

.Auflistung der Paketdetails zum Paket 'abiword-common' mittels `apt-cache`
----
$ apt-cache showpkg abiword-common
Package: abiword-common
Versions: 
2.9.2+svn20120603-8 (/var/lib/apt/lists/ftp.de.debian.org_debian_dists_wheezy_main_binary-i386_Packages) (/var/lib/dpkg/status)
 Description Language: 
                 File: /var/lib/apt/lists/ftp.de.debian.org_debian_dists_wheezy_main_binary-i386_Packages
                  MD5: 168081fc8391dc5eb8f29d63bb588273
 Description Language: de
                 File: /var/lib/apt/lists/ftp.de.debian.org_debian_dists_wheezy_main_i18n_Translation-de
                  MD5: 168081fc8391dc5eb8f29d63bb588273
 Description Language: en
                 File: /var/lib/apt/lists/ftp.de.debian.org_debian_dists_wheezy_main_i18n_Translation-en
                  MD5: 168081fc8391dc5eb8f29d63bb588273


Reverse Depends: 
  abiword,abiword-common 2.9.2+svn20120603-8
Dependencies: 
2.9.2+svn20120603-8 - 
Provides: 
2.9.2+svn20120603-8 - 
Reverse Provides:
$
----
// Datei (Ende): ./konzepte/software-in-paketen-organisieren/paketmanagement-als-begriff.adoc
