apt, das Advanced Packaging Tool, ist eine Art intelligenter Überbau für
dpkg und vereinfacht die Paketverwaltung auf der Kommandozeile
durch die beiden Programme apt-get und apt-cache erheblich.
Es ist nicht nur möglich mittels apt updates zu installieren,
sondern auch ganze Distributionen upzugraden. Allerdings wird seit
Debian 3.1 nicht mehr die Verwendung von apt-get empfohlen, sondern
von aptitude, welches Abhängigkeiten noch besser auflösen
kann. aptitude stellt sogar eine zeichenorientierte Benutzerschnittstelle
zur Verfügung, die jedoch stark gewöhnungsbedürftig
ist. Aus diesem Grund verwende ich immer noch gerne die Befehle
apt-get und apt-cache und werde hier auschließlich diese behandeln.
Die Paketquellen in einem Debian System werden in der Datei
/etc/apt/sources.list festgelegt. Einträge in dieser Datei haben folgende Form:
deb http://ftp.de.debian.org/debian/ stable main
deb http://ftp.de.debian.org/debian/ bookworm main contrib non-free
Im ersten Eintrag werden nur Pakete aus der main-Sektion der aktuellen, stabilen Debian-Version eingebunden. Da die stabile Version sich ändern kann, wenn eine neue Debian-Version heraus kommt, ist es besser man nimmt Einträge wie den Zweiten, wo der Name der Debian Distribution (hier bookworm) angegeben ist. Die main-Sektion enthält lediglich komplett freie Pakete. Möchte man zusätzlich nicht freie Software hinzufügen, helfen die beiden Sektionen contrib und non-free.
Installation und Deinstallation von Paketen mittels apt-get
# apt-get check
updated den Paket-Cache und überprüft auf Konflikte.
# apt-get update
Dieser Befehl muß auf jeden Fall nach jeder Änderung der sources.list
ausgeführt werden um die neuen Paketquellen einzubinden und
wenn die letzte Ausführung schon eine Weile zurück liegt auch, um die Liste der zur Verfügung stehenden
Pakete zu aktualisieren. Sollte man einmal ein Paket installieren
wollen und apt meldet, daß das angeforderte Paket nicht zur
Verfügung steht, kann es sein, daß es verändert
wurde und deswegen die Installation nicht klappt. Mit einem apt-get update liest man die Paketquellen
neu ein und kann dann das entsprechende Paket installieren.
# apt-get install xtartan
installiert das Paket xtartan. Dabei werden alle Abhängigkeiten
ebenfalls installiert oder auf den erforderlichen
Versionsstand aktualisiert, sowie die Pakete die von diesen Abhängen
und so weiter (bis zum letzten Paket). Hat man mehrere Versionen eines Pakets zur Verfügung, kann man mittels
# apt-get install xtartan=2.3-11 (apt-get install Paketname=Versionsnummer) eine bestimmte Version installieren.
apt-cache policy xtartan
Zeigt welche Versionen dieses Pakets zur Verfügung stehen und aus welcher Quelle die jeweilige Version stammt.
# apt-get remove xtartan
entfernt das Paket xtartan, ohne die Konfigurationsdateien zu löschen.
# apt-get purge xtartan
entfernt restlos alles vom Paket xtartan, auch die Konfigurationsdateien.
Sollte beim Entfernen eines Pakets andere Pakete überflüssig
werden, da sie nur für dieses gebraucht wurden, weist apt darauf
hin und empfiehlt folgendes Kommando:
# apt-get autoremove
entfernt alle nicht mehr benötigten Pakete.
Pakete werden zum installieren in einem Cache zwischengespeichert.
Möchte man diesen leeren hilft:
# apt-get clean
leert den Zwischenspeicher von apt wo alle heruntergeladenen Pakete zwischengespeichert werden. Dieser befindet sich im Verzeichnis /var/cache/apt/archives/. Zusätzlich gibt es noch folgenden Befehl:
# apt-get autoclean
wie apt-get clean, mit dem Unterschied das nur die Pakete, die auf
dem Netzwerk-Spiegel nicht mehr vorhanden sind, aus dem Cache entfernt
werden.
# apt-get install -s xtartan
-s = simulate. apt simuliert nur die Installation, verändert
aber nicht das geringste. Hervorragend um festzustellen, was bei
der Installation von Paket XY passieren würde.
Aktualisierung installierter Pakete (Systemupgrade)
# apt-get upgrade
installiert die neuesten verfügbaren Versionen aller im System
vorhandenen Pakete. Dabei werden aber keine installierten Pakete
entfernt und keine neuen Pakete installiert, lediglich die vorhandenen
einem Update unterzogen. Gibt es z.B. den Kernel in einer neueren Version, wird diese nicht automatisch installiert, da es sich dabei um die Installation eines neuen Pakets handeln würde, da jeder neue Kernel in ein eigenes Paket gepackt wird. Erkennen kann man das oftmals an dem Hinweis bei apt-get upgrade: 2 Pakete sind zurück gehalten worden. In dem Fall hilft dann der nächste Befehl:
# apt-get dist-upgrade
versucht eine "intelligente" Lösung der Updates,
in dem gezielt Pakete entfernt und installiert werden, die für
neuere Paketversionen benötigt werden. Damit wird dann ein neuerer Kernel installiert, ohne den Alten zu deinstallieren. Im Grub-Bootmenü finden sich dann zwei Einträge mit den unterschiedlichen Kernel-Versionen. Mit diesem Befehl ist es auch möglich ein komplettes Systemupdate von einer alten Debian-Version auf eine neue Debian-Version durchzuführen. Dazu muß man lediglich die Paket-Quellen an die neue Debian-Version anpassen (z.B. die Quellen von bullseye auf bookworm umschreiben) und mittels apt-get update neu einlesen. Ein anschließendes apt-get dist-upgrade updatet das komplette System auf die neuere Debian-Version.
Informationen über Pakete
# apt-cache search tartan
xtartan - Display Scottish tartans
listet alle Pakete auf, in deren Paketnamen und/oder Beschreibungen
der Begriff tartans vorkommt. Möchte man nur in den Paketnamen
suchen hilft folgende Option:
# apt-cache search --names-only tartan
--names-only zeigt nur die Pakete an, in deren Name der Begriff
vorkommt.
# apt-cache show xtartan
Package: xtartan
Priority: optional
....
zeigt Informationen (die Beschreibung) zu einem Paket an.
# apt-cache policy tartan
zeigt Informationen über die installierte Version an und damit
indirekt, ob ein Paket überhaupt installiert ist, da entweder
in der Zeile Installiert: (keine) steht oder die Versions-Nummer,
z.B. Installiert: 1.1.5-40.
Weitere Beispiele für Einträge in der Datei /etc/apt/sources.list
deb http://deb.debian.org/debian/ bookworm main contrib non-free non-free-firmware
# deb-src http://deb.debian.org/debian/ bookworm main non-free-firmware
deb http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware
#deb-src http://security.debian.org/debian-security bookworm-security main non-free-firmware
deb http://deb.debian.org/debian/ bookworm-updates main contrib non-free non-free-firmware
#deb-src http://deb.debian.org/debian/ bookworm-updates main non-free-firmware
deb-src Einträge sind Software-Quellen, d.h. möchte man Programme selbst kompilieren kann man aus diesen Einträgen den Quellcode der entsprechenden Software holen.
Metapakete
Es gibt eine Besonderheit unter den Software-Paketen, die sogenannten Metapakete. Das sind Pakete, die keine Software enthalten, aber dafür eine Liste von Paketen. Damit ist es möglich eine Vielzahl von Paketen für einen bestimmten Bereich zu installieren, inklusive aller Abhängigkeiten. Zum Beispiel ist das Paket kde-standard ein Metapaket, welches den kompletten KDE-Desktop mit den Standard-Paketen installiert. Ohne kde-standard müßte man nicht nur wissen, welche Pakete überhaupt für den KDE-Desktop benötigt werden, man müßte auch jedes einzelne Paket von Hand installieren, was beim KDE-Desktop je nach Distribution zwischen 200 und 400 Pakete sein können.
Leider können Metapakete auch ein Abhängigkeits-Problem auslösen, wenn man ein einzelnes Paket eines solchen Metapakets entfernen möchte. Zum Beispiel führt ein
# apt-get remove kate
dazu, daß das Metapaket kde-standard mit entfernt wird, da kate Teil dieses Metapakets ist. Durch das Entfernen des Metapakets werden sämtliche Pakete der KDE-Distribution als nicht mehr benötigt gekennzeichnet und das Ausführen von
# apt-get autoremove
würde dann den kompletten KDE-Desktop entfernen. Allerdings gibt es für dieses Problem einen kleinen Workaround:
Man entfernt mit
# apt-get remove kde-standard
das Metapaket und ändert mit dem Befehl
# aptitude keep-all
den Status sämtlicher noch verbliebenen Pakete von "wird nicht mehr benötigt" auf "Installiert".
|