apt ist ein Paketmanager und steht für Advanced Packaging Tool. Ursprünglich von Debian entwickelt, ist es mittlerweile auf viele andere Distributionen portiert. Zwei große Vorteile bringt dieses Tool mit. Zum einen ist keine grafische Oberfläche notwendig, zum anderen ist es die Automatisierbarkeit. apt ist ein Kommandozeilenprogramm, das sich wie jedes andere auch in Scripts oder cronjobs einbinden lässt.
apt hält eine Liste aller verfügbaren Pakete lokal vor. Dieses so genannte Repository wird über das Internet aktualisiert. Auch die Installationen laufen in der Regel über das Internet ab. Wollen Sie nun über den Paketverwalter ein Programm installieren, verbindet sich apt zu einem Server, lädt das Paket herunter und spielt es ein. Sind nicht alle Abhängigkeiten erfüllt, erledigt das der Paketmanager für Sie. Das Programm fragt nach, ob Sie die zusätzlichen Pakete installieren möchten. Bejahen Sie das, zieht apt diese auch aus dem Internet und spielt sie auf dem System ein.
Installation und Grundkonfiguration
Mit
rpm -Uvh <Dateiname>.rpm
installieren Sie grundsätzlich Programme für rpm-basierte Systeme.
Für SUSE-Versionen steht das Programm unter http://linux01.gwdg.de/apt4rpm/ zum Download bereit. Fedora- und Red-Hat-Benutzer finden auf http://dag.wieers.com/packages/apt/ eine Installationsanleitung sowie die apt-Pakete. Bei Debian-basierten Distributionen ist apt in der Regel vorhanden.
Im Verzeichnis /etc/apt/sources.list.d/ sind die Server-Listen hinterlegt, zu denen apt eine Verbindung aufbauen soll. In diesem Verzeichnis dürfen auch mehrere Listen stehen. Passen Sie aber auf, dass die Repositories untereinander kompatibel sind. Meist findet sich auf den Homepages der Betreiber eine Anmerkung hierzu. Bei dag.wieers.com steht eine unter dem Punkt D2 in der FAQ. Da das Repository nach der Installation für SUSE recht spärlich ausgestattet ist, holen wir zunächst eine vernünftige Liste. Laden Sie eine der nachfolgenden herunter:
ftp://ftp.gwdg.de/pub/linux/suse/apt/SuSE/9.2-i386/examples/sources.list.FTP
oder
ftp://ftp.gwdg.de/pub/linux/suse/apt/SuSE/9.2-i386/examples/sources.list.HTTP
Das FTP beziehungsweise HTTP am Ende der Datei steht für das Protokoll der Verbindung, die Sie später aufbauen. Kopieren Sie die Datei ins Verzeichnis /etc/apt/sources.list.d/ und lassen Sie dabei die Endung weg. apt ignoriert das File, wenn es nicht auf .list endet. Unwichtig ist wiederum, was vor .list steht. Ob neu.list, meins.list oder was_auch_immer.list liegt in Ihrer Hand. Löschen Sie danach noch die Datei sources.list aus dem Verzeichnis /etc/apt/. Erstens meckert das System sonst über einen doppelt vorhandenen Server. Zweitens ist es wesentlich übersichtlicher, die Server-Listen in einem separaten Verzeichnis zu halten.
Möchten Sie für andere SUSE-Versionen eine umfangreichere Liste, so ersetzen Sie in den genannten Links "9.2-i386" mit Ihrer Version. Zum Beispiel für SUSE 8.2
ftp://ftp.gwdg.de/pub/linux/suse/apt/SuSE/8.2-i386/examples/sources.list.FTP
Pakete installieren I
Der grundsätzliche Aufruf, Paketmodifizierungen vorzunehmen, ist
apt-get <Optionen> <Befehl> <Paket_1 Paket_2 ... >
Zunächst einmal bringen Sie das Repository auf den aktuellen Stand. Als root erledigen Sie dies mit
apt-get update
Das verbindet unser System zu den hinterlegten Servern und synchronisiert die Paketinformationen.Mit
apt-get upgrade
prüft die Software, ob es auf dem Server neuere Pakete als die auf dem System vorhandenen gibt. apt sieht aber in dem lokalen Repository nach. Somit sollte vor diesem Aufruf immer ein apt-get update erfolgen.
Gibt es etwas Neues, schlägt das Tool Ihnen vor, die alte Software zu ersetzen. Nach einer Bestätigung legt der Paketmanager los. apt lädt die Pakete herunter und ersetzt die alten. Programme, die den Installationsstatus abhängiger Pakete ändern, bleiben allerdings unberührt. Im Default-Modus hinterlegt der Paketverwalter die aus dem Netz gezogenen Pakete im Verzeichnis
/var/apt/cache/archives/
Das ist praktisch, wenn Sie nicht nur einen Rechner aktualisieren wollen. Es drückt den Internet-Traffic gewaltig, die Pakete mit einem Rechner abzuholen und danach auf andere zu deployen. Vielleicht möchten Sie in einer Produktivumgebung auch erst einmal ausprobieren, ob die Updates ohne Nebenwirkungen bleiben.
Pakete installieren II
Das Distributions-Upgrade
apt-get dist upgrade
führt die Updates auch dann durch, wenn sich der Installationsstatus abhängiger Pakete ändert. Die für das System wichtigeren Komponenten werden dabei zuerst installiert. Damit können Sie Ihren Rechner sogar auf ein neues Release bringen, wenn kein "sanfter" Übergang möglich ist. Eventuell müssen Sie die Source-Listen ändern und den Pfad zu einer höheren Betriebssystemversion eintragen. Das Distributions-Upgrade ist aber mit Vorsicht zu genießen. Eine dringende Empfehlung ist, dies erst auf einem unproduktiven System zu testen. Ein einzelnes Paket installieren Sie mit
apt-get install <Paketname>
Gibt es nicht erfüllte Abhängigkeiten, weist Sie das Programm darauf hin. Bestätigen Sie Zusatzinstallationen mit "yes", holt und spielt apt diese auf Ihrem System ein. Eine kleine Schwierigkeit könnte sein, dass Sie den Namen des Pakets wissen müssen. Der Aufruf
apt-cache search <Suchbegriff>
zeigt Ihnen das Ergebnis auf dem Bildschirm an. Die Ausgabe enthält nur den Namen des Pakets und die Kurzbeschreibung. Sollte <Suchbegriff> auch in der vollständigen Beschreibung vorkommen, ist dies trotzdem auf dem Bildschirm zu sehen. Wundern Sie sich also nicht, wenn mal etwas ausgegeben wird, nach dem Sie scheinbar nicht gesucht haben.Pakete lassen sich mit dem Tool auch wieder deinstallieren.
apt-get remove <Paketname>
erledigt das. Auch hier gilt es, den exakten Paketnamen zu verwenden. Installierte Pakete lassen sich mit
rpm -qa | grep <Suchbegriff>
herausfinden.
apt-get source <Paketname>
holt kein Paket, sondern die Sourcen. Diese finden Sie wieder im Verzeichnis
/usr/src/packages/SOURCE/
Das Archivverzeichnis bereinigen Sie komplett mit
apt-get clean
Möchten Sie in Ihrem Archiv nur Pakete haben, die auch tatsächlich noch zum Download bereit stehen, so erledigt das
apt-get autoclean
Die meisten dieser Aufrufe können Sie mit speziellen Optionen versehen. Die nachfolgende Tabelle gibt einen Überblick über die wichtigsten. Die vollständige Liste gibt es wie immer in den man-Pages
man apt-get
beziehungsweise
man apt-cache
Die wichtigsten Schalter von apt
Schalter | Funktion |
-d | download only: lädt die Pakete nur herunter und legt sie im Archivverzeichnis ab |
-f | Fix: versucht, ein Repository mit korrupten Abhängigkeiten zu reparieren |
-s | simulate: ändert nichts am System, sondern führt nur eine Simulation durch |
-y | auto-yes: diese Option verlangt keine Bestätigung, um eine Aktion durchzuführen |
-b | kompiliert heruntergeladene Source-Pakete |
Das apt-GUI Synaptic
Der Paketmanager ist auch grafisch unter X steuerbar. Das Graphical User Interface Synaptic ist übersichtlich und selbsterklärend. Es muss allerdings erst installiert werden. Hierzu verwenden wir gleich ein
apt-get install synaptic
Wie Sie sehen, holt apt tatsächlich abhängige Pakete gleich mit.
Dummerweise fällt diese Installation bei SUSE erst einmal auf die Nase. Schuld daran ist ein fehlender GPG-key des Synaptic-RPMs. Der Check auf einen gültigen Schlüssel dient der Sicherheit.
Jetzt gibt es zwei Möglichkeiten, das Paket trotzdem zu installieren.
Methode 1: Die Notwendigkeit der Prüfung ist in der Datei gpg-checker im Verzeichnis /etc/apt/apt.conf.d/ hinterlegt. Ändern Sie den Parameter
GPG::Check true;
in
GPG::Check false;
wird auf den Gültigkeits-Check verzichtet, und das Paket installiert sich. Mit dieser Änderung verhält sich der Paketmanager wesentlich weniger streng.Aus Sicherheitsaspekten sollte der Parameter jedoch auf true stehen. Bei Automatisierung von Updates in einem cronjob ist es aber besser, er steht auf false. Oder Sie verwenden den Parameter -d, dann wird sowieso nichts automatisch installiert, und dieser Check ist obsolet.
Methode 2: Das Paket wurde bereits heruntergeladen und liegt im Archivverzeichnis. Wechseln Sie nach /var/cache/apt/archive/. Dann wird Synaptic mit
rpm -Uvh synaptic_0.55.3-0.suse092.rb1_i586.rpm
trotzdem installiert. Natürlich müssen Sie die abhängigen Pakete auch alle händisch installieren. Das ist jetzt kein Problem, da nur diese Pakete im Archiv liegen, und mit
rpm -Uvh *.rpm
ist das schnell erledigt. Wenn sich aber im Archiv schon sehr viele Dateien befinden, kann die Programminstallation schon mal ein bisschen aufwendiger werden.
Fazit
apt eignet sich hervorragend, um Systeme auf dem aktuellen Stand zu halten. Dabei ist nicht die grafische Benutzeroberfläche das Killer-Argument, sondern die Möglichkeit, das Tool zu scripten. Gibt es etwas Schöneres, als morgens ins Büro zu kommen und alle aktualisierten Programme befinden sich bereits auf dem Rechner?
apt ist übrigens nicht der einzige Paketmanager, yum arbeitet ganz ähnlich. Welcher davon zum Einsatz kommt, ist Geschmackssache. (jdo)