Advanced Package Tool (APT)

Debian Swirl

http://www.black-board.net
Es ist nicht gestattet dieses Tutorial losgelöst von dem Namen BlackBoard und der URL zu verbreiten.


Das Tutorial befindet sich noch in der Entwicklung. Wenn du mitwirken möchtest, melde dich hier.
Dies ist ein Aufruf - wenn du Ahnung hast, mach mit!



1. Was ist APT?


Nun APT ist ein Hilfs-System zur einfachen Installation und Verwaltung von Debian-Paketen (deb). Der eigentliche Paket-Manager eines Debian-Systems ist dpkg. APT ist nur ein sehr mächtiges Interface zu dpkg. Außerdem hilft APT dabei das System up-to-date und sicher zu halten.


2. Wie funktioniert APT?


Die beiden wichtigsten Tools des APT sind apt-get und apt-cache. Mit apt-get installiert/entfernt man Pakete und mit apt-cache durchsucht man die Paket-Datenbank.


Ich gehe zunächst auf apt-get ein:
Die wichtigsten Funktionen sind (Übersetzt aus apt-get --help):

  • update - Erstellen einer neuen Paket-Datenbank mit Hilfe der Einträge in /etc/apt/sources.list
  • upgrade - Alle Pakete auf den neuesten Stand bringen
  • install - neues Paket/neue Pakete installieren
  • remove - Paket(e) löschen
  • dist-upgrade - Wie upgrade nur wechselt man hier seine Debian-Version, falls eine neue auf den Debian-Servern bereitliegt (z.B. von 3.0-rc0 nach 3.0-rc1. Auch nötig bei Umstieg von stable auf testing oder unstable)
  • clean - Lösche alle deb-Pakete in /var/cache/apt/archives
  • autoclean - Lösche alte Pakete in /var/cache/apt/archives

apt-get update

Hier wird der cache (Speicher) des APT erneuert. D.h. APT holt sich von den in der /etc/apt/soures.list angegebenen Servern Die gewünschten Paket-Infos. Sollte man regelmäßig tun, vor allen Dingen wenn man größeres wie z.B. ein apt-get upgrade vorhat.


apt-get upgrade

Hier werden Pakete, für die eine neuere Version verfügbar ist aus dem Netz/von der CD gezogen und installiert. Eine sehr nützliche Sache, da sich auf diese Weise auch Sicherheits-Updates mit einem Befehl erledigen lassen. D.h. man braucht sich als normaler Benutzer keine zusätzlichen Gedanken um die Sicherheit der Software zu machen. (Sofern man http://security.debian.org in seiner sources.list stehen hat).


apt-get install <paketname>

Mit apt-get install paket-name wird die aktuelle Version des Paketes paket-name installiert. APT achtet hierbei selbstständig auf Abhängigkeiten und verlangt eine Bestätigung, wenn durch die Installation des Paketes ein anderes entfernt werden muss. Hierbei ist in einigen Fällen Vorsicht geboten. Durch unsaubere Abhängigkeiten und eine große sources.list mit vielen Unterschiedlichen Einträgen kann es passieren, dass das System unbrauchbar wird oder nur schwer wieder zu reparieren ist. Also wenn da steht:
"The following packages will be REMOVED:"
und die Liste darunter sehr lang ist, dann überlegt euch die Sache am besten noch einmal.

Es ist auch möglich mehrere Pakete auf einmal zu installieren, indem man einfach die Paket-Namen mit einem Leerzeichen trennt.


apt-get remove <paketname>

Remove entfernt Pakete inklusive ihrer Abhängigkeiten. Auch hier ist Vorsicht geboten (s.o.).


apt-get dist-upgrade

Das gleiche wie upgrade, nur das hier gegebenenfalls die Debian-Version selbst erneuert wird, was auch mit neueren Paketen verbunden sein kann. Also wenn ihr ein dist-upgrade machen wollt, dann am besten so:

apt-get update && apt-get upgrade && apt-get dist-upgrade

Das && sorgt dafür, dass der nächste Befehl nur dann ausgeführt wird, wenn der Vorhergehende erfolgreich (Exit Code 0) war.


apt-get clean

apt-get holt zu installierende Pakete zuerst aus dem Netz und installiert sie dann. Zwischengespeichert werden sie in /var/cache/apt/archives. Dieses Verzeichnis niemals von Hand mit einem rm -rf leeren, da dort auch eine Datei enthalten ist, in der APT sich merkt, welche Dateien bereits heruntergeladen wurden. Sollte also mal die Festplatte verdächtig knapp werden, empfiehlt es sich eventuell ein apt-get clean zu machen.


apt-get autoclean

Habe ich selbst noch nie getestet, aber laut Beschreibung werden hier nur alte Pakete entfernt.


Das zweite wichtige Werkzeug im APT-Verbund ist apt-cache: Die einzig interessante Anweisung für apt-cache ist search. Hier wird in der Paket-Datenbank nach Übereinstimmungen mit dem Suchbegriff gesucht. Wenn man viele Ergebnisse erwartet, empfiehlt es sich die Ausgabe durch ein less zu pipen:

apt-cache search foo | less

In less könnt ihr ganz normal scrollen, verlassen mit 'q'.

Die auf diese Weise gefundenen Paket-Namen lassen sich dann mit apt-get install installieren. Alle anderen Anweisungen an apt-cache sind für Anfänger uninteressant und ich selbst habe auch noch keine andere benutzt. Wer mehr wissen will, kann in die man-Page zu apt-cache hineinsehen.

Das dritte Werkzeug zu APT ist apt-setup und wird ohne Parameter aufgerufen. Daraufhin wird ein Dialog-Fenster geöffnet, indem ihr einstellen könnt woher ihr eure Debian-Pakete beziehen wollt. apt-setup hängt dann diese Informationen an die sources.list an und führt ein apt-get update aus.


3. Wie erweitere ich APT?


APT erstellt seinen Cache mit Hilfe der Einträge in der Datei /etc/apt/sources.list. Dort sollten normalerweise 1 bis 2 Zeilen für die offiziellen Debian-Pakete stehen (+ 1 bis 2 deb-src für Quellen, die man allerdings in den meisten Fällen streichen kann) und ein Eintrag der Form
deb http://security.debian.org/ stable/updates main ..... ......
für sicherheitsrelevante Updates.

Damit sind bereits alle offiziellen Debian-Quellen abgedeckt. Durch alle weiteren Einträge verlasst ihr den offiziellen Paket-Umfang und geht möglicherweise Risiken ein, was die Stabilität eures Systems angeht. Es ist jedoch eine sehr bequeme Lösung, wenn eine Entwickler-Seite deb-Einträge für die sources.list anbietet, da ihr dadurch die entsprechende Software ohne Aufwand installieren und up-to-date halten könnt. Seid euch dennoch bewusst, dass es vorkommen kann, dass diese Seite die benötigten Abhängigkeiten (meistens irgendwelche neueren Bibliotheken) ebenfalls bereitstellen wird und dass diese auch ohne Rücksicht installiert werden. Wenn ihr also ein stabiles System, wie für einen Server haben wollt, dann haltet eure soures.list klein!

Stoff für eure sources.list findet ihr bei www.apt-get.org.


4. Schlusswort


Als Schlusswort gebe ich noch ein paar nützliche Dinge an, da ich oben ja genug Warnungen zur Benutzung von APT, insbesondere der sources.list angegeben habe.
# dpkg -l
zeigt die Liste aller installierten Pakete an. Sucht ihr ein bestimmtes, müsst ihr die Ausgabe durch einen grep pipen:
# dpkg -l | grep kernel
wird jetzt alle installierten Pakete mit Namen *kernel* inklusive Versionsnummer und Status auflisten. Zur genaueren Benutzung von grep schaut in man grep.

Wenn man an den Inhalt eines deb-Paketes heran will, dann bietet sich dpkg-scanpackage an:
# cd /usr/src/deb
# dpkg-scanpackage ./ /dev/null | gzip > Packages.gz

Damit werden alle deb-Pakete, die in /usr/src/deb liegen, dorthin ausgepackt und gezippt.

Nach der Deinstalltion von Paketen bleiben oftmals die Configfiles zurück (sofern das remove nicht gepurged wird), um das System von Zeit zu Zeit von diesen Altlasten zu befreien hilft wie immer ein kleiner Einzeiler:
# dpkg -l | grep ^rc | awk '{print $2}' | xargs dpkg -P

Verfasser


Letzte Aktualisierung 27.06.2006 von LX