// Datei: ./werkzeuge/apt-und-bibliotheken/apt-und-bibliotheken.adoc

// Baustelle: Rohtext

[[apt-und-bibliotheken]]
== APT und Bibliotheken ==

Wie bereits in der Übersicht in ``Softwarestapel und Ebenen'' (siehe
<<softwarestapel-und-ebenen>>) deutlich wurde, ist die Paketverwaltung
von Debian GNU/Linux mehrstufig und modular aufgebaut. Hinter den
Bedienoberflächen `dpkg`, APT und `aptitude` (siehe ``Werkzeuge zur
Paketverwaltung'' in <<werkzeuge-zur-paketverwaltung>>) stecken mächtige
Bibliotheken, die den Zugriff auf die einzelnen Softwarepakete und die
Paketdatenbank kapseln. Mit Hilfe der nachfolgend vorgestellten
Bibliotheken und den Funktionen daraus können Sie eigene Anwendungen zur
Paketverwaltung entwickeln.

=== Bibliothek `libapt-pkg` ===

// Stichworte für den Index
(((Bibliothek, libapt-pkg)))
(((Debianpaket, libapt-pkg5.0)))
(((libapt-pkg)))

Diese Bibliothek aus dem Paket 'libapt-pkgX.Y' (`X.Y` ist in Debian 9
Stretch und Debian 10 Buster `5.0`, siehe
<<Debian-Paket-libapt-pkg5.0>>, und bei Debian 11 _Bullseye_ ist es
`6.0`) enthält die Basiskomponenten zum Zugriff auf die einzelnen
Softwarepakete. Das umfasst Funktionen zur Suche nach Paketen, deren
Verwaltung sowie die Ausgabe der Paketinformationen. Dazu gehören:

* der Abruf von Informationen zu einem Paket aus den verschiedenen Paketquellen
* der Abruf eines Pakets und der vollständigen Auflösung der
Paketabhängigkeiten dieses Pakets
* die Authentifizierung der Paketquellen und Überprüfung der abgerufenen
Daten (Validierung)
* die Installation und Entfernung von Paketen aus ihrem Linux-System
* der Zugriff auf den Paketcache (siehe <<paketcache>>)
* die Bereitstellung von Schnittstellen zu Netzwerkprotokollen, um Daten
und Pakete über diese beziehen zu können. Dazu gehören bspw. CD-ROM,
FTP, HTTP/S, rsh und DebTorrent (APT über BitTorent)
(<<Debian-Paket-apt-transport-debtorrent>> und <<Debian-Wiki-DebTorrent>>).

=== Bibliothek `libapt-pkg-perl` ===

// Stichworte für den Index
(((Bibliothek, libapt-pkg-perl)))
(((Debianpaket, libapt-pkg-perl)))
(((libapt-pkg-perl)))
Diese Bibliothek aus dem Paket 'libapt-pkg-perl'
<<Debian-Paket-libapt-pkg-perl>> beinhaltet die Perl-Schnittstelle zum
Zugriff auf die einzelnen Softwarepakete. Es hat die gleiche
Funktionalität wie das weiter oben beschriebene Paket 'libapt-pkg'.

=== Bibliothek `python-apt` ===

// Stichworte für den Index
(((Bibliothek, python-apt)))
(((Debianpaket, python-apt)))
(((python-apt)))
Diese Bibliothek aus dem Paket 'python-apt' <<Debian-Paket-python-apt>>
beinhaltet die Python-Schnittstelle zum Zugriff auf die einzelnen
Softwarepakete. Es hat die gleiche Funktionalität wie die weiter oben
beschriebenen Pakete 'libapt-pkg' und 'libapt-pkg-perl'.

=== Paket `libapt-pkg-doc` ===

// Stichworte für den Index
(((Debianpaket, libapt-pkg-doc)))
(((libapt-pkg-doc)))
Das Paket <<Debian-Paket-libapt-pkg-doc>> stellt die Dokumentation zu
libapt-pkg zur Verfügung, auf deren Grundlage Sie die Bibliothek in
eigenen Entwicklungen verwenden können. Die Dokumentation steht als
Plaintext und als HTML-Dokument bereit.

=== Bibliothek `libapt-inst` ===

// Stichworte für den Index
(((Bibliothek, libapt-inst)))
(((Debianpaket, libapt-inst2.0)))
(((libapt-inst)))
(((Paketinterna abfragen)))
// Worin liegt der Unterschied und Nutzen im Vergleich zu libapt-pkg?

Um Informationen aus `deb`-Paketen zur erhalten, nutzen Sie diese
Bibliothek aus dem Paket 'libapt-instX.Y' (`X.Y` ist in Debian 9
Stretch und Debian 10 Buster `2.0`, siehe <<Debian-Paket-libapt-inst2.0>>).
Darüber steht eine Schnittstelle zur Abfrage der Paketinterna bereit,
die sowohl den Paketinhalt, als auch die Steuerdaten der Komponente
`control.tar.gz` umfassen (siehe ``Debian-Paketformat im Detail'' in
<<aufbau-und-format>>).

Seit APT 1.9.0, Debian 11 _Bullseye_ und Ubuntu 19.10 _Eoan_ ist
`libapt-inst` in `libapt-pkg` aufgegangen.

// ==== `libdpkg-perl` ====
//
// Dpkg perl modules
// Datei (Ende): ./werkzeuge/apt-und-bibliotheken/apt-und-bibliotheken.adoc
