dpkg
ist das Debian-Programm für grundlegende Paketoperationen und
bildet in Bezug auf Funktionsumfang und Handhabung das Äquivalent zu
rpm
auf RedHat-basierten Linuxsystemen. Es kürzt den Namen Debian
GNU/Linux package manager ab. Im Anhang unter ``Kommandos zur
Paketverwaltung im Vergleich`` (siehe
Kapitel 51, Kommandos zur Paketverwaltung im Vergleich) stellen wir die
verschiedenen Schalter zu den beiden Kommandos dpkg
und rpm
gegenüber.
dpkg
agiert nur mit Paketen, die schon auf ihrem Linuxsystem lokal
vorliegen — entweder als deb
-Datei in einem Verzeichnis oder als
bereits installiertes Paket. dpkg
kann keine Pakete von einem
Paketmirror beziehen.
Sie erreichen dpkg
ausschließlich über die Kommandozeile und starten
es mit diversen Schaltern und Optionen. Die wichtigsten Parameter für
den Gebrauch im Alltag sind[13]:
dpkg -l
(siehe Abschnitt 8.5, „Liste der installierten Pakete anzeigen und deuten“)
dpkg -s
Paketname (siehe Abschnitt 8.4, „Paketstatus erfragen“)
dpkg -L
Paketname (siehe Abschnitt 8.26, „Paketinhalte anzeigen“)
dpkg -c
Paketname
dpkg -S
Dateiname und
--configure
)
Mit dpkg
zeigen Sie die installierten Pakete und deren Zustand an, suchen
nach Paketinhalten und konfigurieren im Bedarfsfall ein Paket nach.
Für alle anderen Aktionen sind hingegen die Werkzeuge apt-get
(Abschnitt 6.2.2, „APT“),
apt-cache
, aptitude
(Abschnitt 6.3.2, „aptitude
“) und apt-file
oder die
Benutzeroberflächen via Ncurses oder GTK besser geeignet (siehe
Abschnitt 6.3, „ncurses-basierte Programme“ und Abschnitt 6.4, „GUI zur Paketverwaltung“). Diese fassen viele
Einzelschritte von dpkg
zusammen und vereinfachen Ihnen die Wartung
ihres Systems erheblich.
APT ist das Debian-Programm für etwas komplexere Paketoperationen und steht als Abkürzung für Advanced Packaging Tool. Sie finden es im Paket apt [Debian-Paket-apt], welches zur Standardinstallation Ihres Debian-Systems gehört.
APT ist für den Alltagseinsatz konzipiert. Es eignet sich sowohl für Recherchezwecke (Abfrage von Status- und Zustandsinformationen), als auch für die Installation und Aktualisierung einzelner Pakete sowie gesamter Paketstrukturen (Veröffentlichungen).
Im Gegensatz zu aptitude
(siehe Abschnitt 6.3.2, „aptitude
“) ist es deutlich weniger
anspruchsvoll. Das betrifft die Anforderungen an die Hardware und
insbesondere den benötigten Speicher für die Ausführung. APT hat zudem
eine deutlich höhere Ausführungsgeschwindigkeit als aptitude
.
APT ist sehr mächtig und kann mit Paketen umgehen, die sich entweder
bereits lokal auf Ihrem System befinden, oder noch auf einem Paketmirror
vorliegen. Es kombiniert i.d.R. mehrere Einzelaktionen von dpkg
. Es
greift dabei aber nicht direkt auf dpkg
zurück, sondern kapselt dafür
die Aufrufe mit Hilfe der Bibliothek libapt-pkg (siehe dazu „APT und
Bibliotheken“ unter Kapitel 5, APT und Bibliotheken).
APT umfasst ausschließlich Programme für die Kommandozeile. Dazu zählen
apt-cache
, apt-cdrom
(siehe
Abschnitt 3.9, „Physische Installationsmedien mit apt-cdrom
einbinden“), apt-config
zur Konfiguration von APT (siehe
Kapitel 10, APT und aptitude
auf die eigenen Bedürfnisse anpassen), apt-get
,
apt-key
(siehe Abschnitt 3.13, „Paketquelle auf Echtheit überprüfen“) und
apt-mark
(siehe Abschnitt 8.4.6, „Anfragen mit apt-mark
“). Jedes der genannten
Programme verfügt über umfangreiche Unterkommandos, die Sie wiederum mit
diversen Optionen und Schaltern kombinieren können. Die gebräuchlichsten
Aktionen für den Alltag sind:
apt-cache show
Paketname
apt-file show
Paketname
apt-cache depends
Paketname
apt-cache search
Paketname
apt-get install
Paketname
apt-get
remove
Paketname
apt-get update
apt-get upgrade
apt-get dist-upgrade
Nachfolgend geben wir Ihnen eine Übersicht zu allen Unterkommandos, die die einzelnen APT-Werkzeuge bereithalten. Neben dem jeweiligen Unterkommando finden Sie den Verweis auf den entsprechenden Abschnitt im Buch, in dem wir auf dieses genauer eingehen.
apt-cache
bietet die folgenden Unterkommandos:
depends
dotty
dot
-Format für die benannten Pakete erzeugen (siehe das Beispiel in Abschnitt 2.5, „Zusammenspiel von dpkg und APT“)
dump
dumpavail
gencaches
madison
pkgnames
policy
rdepends
search
show
showsrc
showpkg
stats
unmet
xvcg
apt-get
gehört mit Sicherheit zur Menge der gebräuchlichsten Kommandos
der APT-Familie und verfügt über die folgenden Unterkommandos:
autoclean
autoremove
build-dep
check
clean
dist-upgrade
download
dselect-upgrade
dselect
install
purge
remove
source
update
upgrade
Für apt-key
sind die Unterkommandos add
, adv
, del
, export
,
exportall
, finger
, list
, net-update
und update
zulässig. Diese
besprechen wir ausführlich unter „Paketquelle auf Echtheit überprüfen“
in Abschnitt 3.13, „Paketquelle auf Echtheit überprüfen“.
Die Unterkommandos von apt-mark
lauten auto
, manual
, showauto
und showmanual
. Dazu gehen wir unter „Paketstatus erfragen“ in
Abschnitt 8.4, „Paketstatus erfragen“ detailliert ein.
Dieser Prozess geht stetig voran. Seit mehreren Jahren gibt es Bestrebungen, APT grundlegend zu erneuern bzw. dessen verteilte Funktionalität unter einer einzigen Benutzeroberfläche zusammenzufassen. Unter dem Namen APT2 [apt2] existiert zwar ein Prototyp mit neuer API, jedoch gab es dort nach unserer Recherche seit 2011 keine weitere Entwicklung mehr.
Eine weniger tiefgreifende, aber dennoch erfrischende Modernisierung
gibt es seit APT Version 1.0. Von da an enthält das Paket apt das
zusätzliche, gleichnamige Kommandozeilenprogramm apt
. Dieser
Programmname wurde bis dato von einem Java-Programm zur
Annotationsverarbeitung (Annotation Processing Tool) belegt
[Java-Apt]. Es wird seit Java 7 als veraltet deklariert und ist seit
Java 8 nicht mehr Bestandteil von Java.
Somit wurde der Weg für ein neues Programm frei, ohne große Verwirrung
zu stiften. apt
vereint die gängigsten Unterkommandos von apt-get
und apt-cache
in einem kürzeren Befehl und mit moderneren
Standardeinstellungen wie z.B. einem Fortschrittsbalken und farbiger
Ausgabe auf dem Terminal (siehe [Vogt-Apt-1.0]). Neben den bekannten
Unterkommandos list
, search
, show
, update
, install
und
upgrade
kennt es auch die neuen Aktionen full-upgrade
als Ersatz
für dist-upgrade
und edit-sources
zur direkten Veränderung der Datei
/etc/apt/sources.list
(siehe Abschnitt 8.41, „Pakete aktualisieren“ und
Abschnitt 3.4, „Die Datei /etc/apt/sources.list
verstehen“). Darüber hinaus verfügt es ab APT
Version 1.1 über die Fähigkeit, lokal vorliegende deb
-Pakete zu
installieren und dabei die dazugehörigen Paketabhängigkeiten mit zu
berücksichtigen.[14]
In LinuxMint gibt es dagegen schon länger einen Befehl apt
[LinuxMint-apt], welcher allerdings ein in Python geschriebener
Wrapper um apt-get
, apt-cache
und neuerdings auch apt
ist.
Dieser befindet sich in /usr/local/bin/
und hat weitere
LinuxMint-spezifische Features, wie z.B. das automatische Aufrufen der
eigentlichen Befehle via sudo
wo notwendig.
Ebenfalls in produktivem Zustand und teilweise intensiver Benutzung
befinden sich die Werkzeuge cupt
, aptitude
und SmartPM.
Während sich und cupt
nur auf die Kommandozeile beschränken,
bieten Ihnen aptitude
zusätzlich eine textbasierte bzw. SmartPM eine
graphische Benutzeroberfläche. Auf diese Werkzeuge gehen wir nachfolgend
genauer ein (siehe, Abschnitt 6.2.5, „Cupt“, Abschnitt 6.3.2, „aptitude
“ und Abschnitt 6.4.3, „Smart Package Management (SmartPM)“).
aptsh
war auch lange Zeit verfügbar, wurde aber kurz vor dem Release
von Debian 10 Buster entfernt). Es ist
verfügbar bis Debian 9 Stretch und Ubuntu 19.04 Disco.
Das in der Programmiersprache Python geschriebene Programm wajig
[Debian-Paket-wajig] ist vorrangig ein Wrapper um dpkg
(Abschnitt 6.2.1, „dpkg
“)
und APT (Abschnitt 6.2.2, „APT“). Es zählt zur gleichen Kategorie wie die nicht mehr
verfügbare aptsh
, beinhaltet aber auch Elemente von cupt
(Abschnitt 6.2.5, „Cupt“)
und aptitude
(Abschnitt 6.3.2, „aptitude
“) auf der Kommandozeile [15].
Die bisher letzte stabile Veröffentlichung von wajig befindet sich in Debian 10 Buster, danach ist es nur noch im Bereich unstable vorrätig.
wajig
zielt darauf ab, alle im Alltag erforderlichen Aktionen zur
Paketverwaltung in einem einzigen Werkzeug für die Kommandozeile
zusammenzufassen. Daher haben sich die wajig-Entwickler das Ziel
gesetzt, die APT-Bibliotheken (siehe Kapitel 5, APT und Bibliotheken)
vollständig auszureizen und nach Möglichkeit auch alle Optionen, die
dpkg
und APT bieten, im Programm zu integrieren. Gleichzeitig stehen
auch Funktionen bereit, die von den separaten Werkzeugen wie bspw.
apt-cdrom
(Abschnitt 3.9, „Physische Installationsmedien mit apt-cdrom
einbinden“)
oder alien
(siehe Abschnitt 23.2, „Fremdformate mit alien
hinzufügen“) entlehnt
wurden.
Sie bedienen wajig
ausschließlich über die Tastatur. Möglich sind zwei
Modi — mit dem gewünschten Unterkommando beim Aufruf, oder ohne. Bei
ersterem erfolgt die Ausgabe direkt im Terminal, bei letzterem öffnet
sich dann zunächst die wajig
-Shell und wartet auf Ihre Eingabe. In
dieser können Sie dann alle Unterkommandos zur Paketverwaltung benutzen.
Dazu zählen bspw. install
zur Paketinstallation, detail
zur
Darstellung der Paketinformationen, listfiles
zu Auflistung des
Paketinhalts und remove
zum Entfernen eines Pakets. Mittels
find-file
erstöbern Sie eine gewünschte Datei in den bereits
installierten Paketen, wohingegen Ihnen list-orphans
die Paketwaisen
(siehe Abschnitt 8.44, „Umgang mit Waisen“) anzeigt.
Als Besonderheit ist einerseits die Anbindung an apt-get.org
[apt-get.org] zu nennen, um darüber den Paketmirror nach Bedarf
auszuwählen. Ebenso ist die Umwandlung und Installation von
.rpm
-Paketen mittels rpm2deb
und rpminstall
sowie die
ausführliche, integrierte Hilfe hervorzuheben.
Suche nach der Datei sources.list
mit Hilfe von wajig
.
$ wajig find-file sources.list apt: /usr/share/man/es/man5/sources.list.5.gz apt: /usr/share/man/ja/man5/sources.list.5.gz apt: /usr/share/man/pt/man5/sources.list.5.gz debtags: /etc/debtags/sources.list apt: /usr/share/man/fr/man5/sources.list.5.gz apt: /usr/share/doc/apt/examples/sources.list debtags: /etc/debtags/sources.list.d apt: /usr/share/man/de/man5/sources.list.5.gz debtags: /etc/debtags/sources.list.d/source-example apt: /usr/share/man/pl/man5/sources.list.5.gz apt: /etc/apt/sources.list.d apt: /usr/share/man/man5/sources.list.5.gz $
Weitere Informationen zum Programm finden Sie auf der Webseite des
Projekts [wajig-Webseite]. Um die Feinheiten der Kommandos zwischen
dpkg
, APT und wajig
besser vergleichen zu können, hilft ein Blick
in das Wiki von xtronics [xtronics-Wiki].
sysget
ist ein Wrapper, welches den Aufruf zu den verschiedenen,
tatsächlichen Paketwerkzeugen übernimmt. Ziel ist dabei, eine
einheitliche Schnittstelle zu den Programmen wie APT, yum
oder DNF
herzustellen und damit auch Einsteigern die ersten Schritte nach einem
Wechsel der Distribution zu erleichtern. sysget
wird als Projekt auf
GitHub gepflegt [sysgetGitHub].
Das Werkzeug orientiert sich an APT und versteht derzeit die folgenden Unterkommandos:
autoremove
clean
install
remove
search
update
upgrade
sysget
ist derzeit nicht als Debianpaket verfügbar, sondern
lediglich als Quellcode von der Projektwebseite. Ob das Projekt
weitergepflegt wird, ist unklar. Die letzte Veröffentlichung stammt aus
dem Oktober 2019.
Cupt beschreibt sich selbst als High-level Package Manager und
integriert Kommandos unter einem Dach, die Sie von den Werkzeugen dpkg
und APT her kennen. Dafür nutzt es auf der Serverseite die gleiche
Infrastruktur wie APT. Die Clientseite wurde hingegen komplett neu
entwickelt. Sie rufen das in der Programmiersprache C++ entwickelte
Werkzeug über das gleichnamige Kommando cupt
auf.
Wie bereits oben angerissen, vereinigt Cupt zwar Kommandos aus dpkg
und APT, jedoch bislang noch nicht alle davon. Offen ist bspw. der
Support für multiarch (Abschnitt 1.2.3, „Multiarch: Mehrere Architekturen gleichzeitig auf einem System“).
Gleichzeitig bietet es auch weitere Features, die APT noch fehlen (siehe
[Debian-Wiki-cupt]), bspw. Debdelta [Debdelta] und die
Synchronisation anhand der Version des Sourcepakets. Ebenso kennt es
ein Kommando satisfy
, um auf der Kommandozeile angegebene
Paketbedingungen zu erfüllen, z.B. cupt satisfy ``kmail (>= 4:4.2),
wget (>= 1.10.0)''
.
Cupt kann problemlos parallel zu APT verwendet werden, ist jedoch gemäß seinem Autor noch nicht sehr weit verbreitet und auch entsprechend wenig durch Benutzer in der Praxis getestet [Cupt-Tutorial]. Wir gehen im Buch nicht weiter darauf ein.
[13] Weitere Optionen zu dpkg
entnehmen Sie bitte der Manpage zum Programm
[14] Diese Eigenschaft stammt vom Programm
gdebi
(siehe Abschnitt 6.4.5, „GDebi“), welches ebenfalls vom APT-Entwickler
Michael Vogt gepflegt wird.
[15] Bis einschließlich Debian 6 Squeeze bestand zudem eine graphische Variante namens gjig, die mittlerweile obsolet und in keiner unterstützten Debian- oder Ubuntu-Veröffentlichung mehr verfügbar ist.