26.02.2014 Aufrufe

Linux-Magazin Clean Linux (Vorschau)

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Titelthema<br />

www.linux-magazin.de Apt intern 09/2013<br />

30<br />

Systeme aktualisieren mit Apt<br />

Gruppenreise<br />

Wer auf Debian- und Ubuntu-Rechnern ein Upgrade anschiebt, setzt im Hintergrund eine Reihe unsichtbarer<br />

Mechanismen in Gang, die sich gegenseitig bedingen und die Apt-Spezialist und -Maintainer Michael Vogt in<br />

diesem Artikel im Detail erklärt. Michael Vogt<br />

© dhoch kr, photocase.com<br />

Apt ist nicht irgendein Werkzeug zur<br />

Softwareverwaltung, sondern schlicht<br />

das Standardwerkzeug zur Paketverwaltung<br />

auf Debian-basierten Systemen wie<br />

Ubuntu, Mint und Debian selbst. Mit<br />

»apt‐rpm« existiert zudem eine RPM-Portierung.<br />

Apt entstand 1998, eine Gruppe<br />

von Debian- und Ubuntu-Programmierern<br />

entwickelt es seitdem kontinuierlich<br />

weiter. Eine seiner zentralen Aufgaben<br />

besteht im Installieren und Aktualisieren<br />

von Software.<br />

Architektonisches<br />

Apt arbeitet mit dem Low-Level-Tool<br />

»dpkg« zusammen. Apt ruft es auf, um<br />

lokale ».deb«-Pakete auf dem Dateisystem<br />

zu installieren oder zu löschen. Außerdem<br />

überprüft »dpkg«, ob Dateipfade kollidieren<br />

und ob es jede Datei einem Paket<br />

zuordnen kann. Daneben ruft es vor oder<br />

nach einem Lösch- oder Installationsprozess<br />

die so genannten Maintainer-Skripte<br />

Preinst, Postinst, Prerm und Postrm auf<br />

und kümmert sich um das Verarbeiten<br />

von Triggern, die in bestimmten Installationsfällen<br />

Aktionen auslösen, beispielsweise<br />

die Manpage aktualisieren.<br />

Apt selbst behält hingegen die größeren<br />

Zusammenhänge im Auge. Es gruppiert<br />

Pakete in Repositories und stellt sicher,<br />

dass diese sich darin authentifizieren lassen.<br />

Es erlaubt zudem, in den lokalisierten<br />

Paketbeschreibungen zu suchen, und<br />

löst Abhängigkeiten zwischen Paketen<br />

auf. Es ist auch dafür zuständig, Pakete<br />

auf das lokale System zu kopieren. Dazu<br />

stehen Apt verschiedene Transportprotokolle<br />

zur Verfügung, etwa HTTP(S),<br />

FTP, SSH oder bewegliche Medien wie<br />

CD-ROMs und DVDs.<br />

Aktualisierungen<br />

Zu den großen Aufgaben von Apt gehört<br />

aber, die Software eines Rechners aktuell<br />

zu halten. Dazu prüft es, welche Version<br />

eines Pakets lokal installiert ist und welche<br />

in einer der konfigurierten Paketquellen<br />

steckt. Grob lassen sich zwei Aktualisierungsvarianten<br />

unterscheiden. Zum<br />

einen spielt Apt Updates und Upgrades<br />

für die installierte Software einer Distribution<br />

auf den Rechner. Zum anderen<br />

kümmert es sich um Upgrades auf eine<br />

neue Version der Distribution.<br />

Das Einspielen von Aktualisierungen für<br />

eine installierte Distribution ist einfach<br />

und erfolgt über »sudo apt‐get upgrade«.<br />

Dabei aktualisiert Apt nur vorhandene<br />

Softwarepakete, installiert aber keine<br />

neuen oder löscht überflüssige. Vereinzelt<br />

bestehen für Pakete, etwa den Kernel bei<br />

ABI-Änderungen, jedoch neue Abhängigkeiten,<br />

dann ist der Aufruf von »sudo<br />

apt‐get dist‐upgrade« notwendig.<br />

Aber nicht nur dazu: Auch die Aktualisierung<br />

auf eine neue Version einer Distribution<br />

funktioniert über »sudo apt‐get<br />

dist‐upgrade«, allerdings erst nach dem<br />

Anpassen der Datei »/etc/apt/sources.<br />

list«. Hierbei aktualisieren Debian beziehungsweise<br />

Ubuntu eine große Zahl<br />

von Paketen, es kommen zahlreiche<br />

neue Abhängigkeiten hinzu, welche die<br />

Distributionen auflösen, indem sie neue<br />

Abhängigkeiten im Detail<br />

Bei der Installation speichert »dpkg« für jedes<br />

Paket den aktuellen Status. Wird das Deb-<br />

Paket zunächst ausgepackt, setzt »dpkg«<br />

dessen internen Zustand auf »unpacked«.<br />

Anschließend konfiguriert es das Paket, indem<br />

es das Maintainer-Skript »DEBIAN/postinst«<br />

aufruft.<br />

Erst wenn dies fehlerfrei geschehen ist, weist<br />

»dpkg« dem Paket den Zustand »installed«<br />

zu. In der Datei »/var/log/dpkg.log« lassen<br />

sich die Übergänge zwischen den (internen)<br />

»dpkg«-Zuständen beobachten.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!