Home / LinuxUser / 2010 / 01 / Urgestein

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Mandriva gibt Distribution in die Hände der Community
(268 Punkte bei 24 Stimmen)
Neues vom Systemd
(179 Punkte bei 5 Stimmen)
Mandriva in Nöten
(161 Punkte bei 4 Stimmen)
Mageia 2 ist fertig
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Shopping
Topsuche
 
Yatego Deutschlands größte Shoppingmall. 10000 Shops,
3.5 Mio Artikel. Alle Bestseller, Servertechnik und Technik Themenwelten.

Notebooks und Netzwerkhardware bei Mercateo günstig kaufen.
Internet Telefonie mit VoIP Telefonen von Gigaset
Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.
Günstige Digitalkameras finden Sie im Preisvergleich.
AA_granitfelsen_sxc638118_Simon-Mueller.jpg

© Simon Müller, sxc.hu

Urgestein

Dpkg, Apt und Co.

30.11.2009 Schon 1993 schuf Debian mit Dpkg ein solide Basis zur einfachen Paketverwaltung. Deren flexible Methoden und Konzepte bewähren sich bis heute – auch im Debian-Ableger Ubuntu.

Debians Dpkg [1] ist neben dem Red Hat Package Manager RPM [2] die am weitesten verbreitetste Paketverwaltung unter den gängigen Linux-Distributionen. Die anfangs von Matt Welsh, Carl Streeter und Debian-Begründer Ian Murdock in Perl geschriebene Verwaltung bildet auch die Grundlage für Canonicals Ubuntu Linux. Selbst PDAs und Router, die unter Linux laufen, verwenden eine abgewandelte Version von Dpkg mit dem Namen Ipkg [3].

Debian-Pakete erkennen Sie an der Endung .deb einer Datei. Dabei handelt es sich eigentlich nur um ein mit ar gepacktes Archiv mit folgendem Aufbau:

  • debian-binary: Versionsinformationen für Dpkg, zum Beispiel der String 2.0.
  • md5sums: Prüfsummen für die vom Paket installierten Dateien
  • control.tar.gz: Archiv mit Steuerungsdateien, Abhängigkeitsinformationen und Pre-/Post-/De-Installationsskripten und anderem mehr
  • data.tar.gz: Archiv mit den eigentlichen Programmdateien.

Über die Option -i weisen Sie Dpkg an, ein Debian-Paket zu installieren (dpkg -i Paket .deb). Möchten Sie einen Blick auf den Inhalt werfen, führen Sie dpkg -c Paket .deb aus. Dpkg selbst löst keine Abhängigkeiten zwischen Paketen auf: Beim Versuch, ein Paket zu installieren, dessen Dependencies nicht erfüllt sind, quittiert Dpkg die Aktion mit einer entsprechenden Fehlermeldung.

In seltenen Fällen kommt es vor, dass Pakete nicht richtig installiert sind. Den Status eines einzelnen Pakets fragen Sie mittels dpkg -s Paket ab, wobei der Paketname dem Dateinamen ohne die Endung entspricht. Die bereits auf dem System installierten Pakete zeigt der Befehl dpkg -l: Die erste Spalte gibt den Status des Pakets mithilfe von zwei Buchstaben an – im weiteren Verlauf des Artikels erfahren Sie hierzu mehr. Die zweite Spalte führt den Namen an, danach folgen die Paketversion und die Paketbeschreibung (Abbildung 1).

Abbildung 1: Dpkg bietet die Möglichkeit, auf dem System installierte und teilweise installierte Pakete (falls beispielsweise die Konfiguration fehlschlug) übersichtlich anzuzeigen.

Falls es ein Paket auf dem System bereits gibt, aktualisiert Dpkg es ohne eine weitere Interaktion des Benutzers – die Angabe einer zusätzlichen Option ist nicht erforderlich. Wünschen Sie die Aktualisierung eines Paketes nicht, gibt es die Möglichkeit, es auf "hold" zu setzen, also quasi einzufrieren. Dazu dient die Anweisung

# echo Paket
 "hold" | dpkg --set-selections

Eine Liste aller Pakete, die auf "hold" gesetzt sind, erhalten Sie mittels des Befehls dpkg --get-selections | grep hold.

In seltenen Fällen kommen Sie nicht umhin, ein Paket zu installieren, obwohl einige Abhängigkeiten nicht einzuhalten sind. Beispielsweise kann es vorkommen, dass für eine 64-Bit-Installation keine entsprechende Paketversion vorliegt. Nach Angabe der Option --force warnt dpkg nur noch, falls eine Bedingung nicht eingehalten wird. dpkg --force-all ignoriert sämtliche Bedingungen, wie Architektur, eingefrorene Pakete oder nicht erfüllte Paketabhängigkeiten. Mehr Informationen liefert dpkg --force-help.

Möchten Sie herausfinden, aus welchem Paket eine bestimmte Datei stammt, führt der Befehl dpkg -S /Pfad /zur /Datei zum Ziel. Sollte die angegebene Datei zu keinem Paket gehören, hat das System sie während der Konfiguration oder im Alltagsbetrieb erstellt, oder es handelt sich um eine vom Benutzer angelegte Datei.

Möchten Sie ein Paket wieder aus dem System entfernen, so übergeben Sie Dpkg dessen Namen zusammen mit der Option -r. Etwaige Konfigurationsdateien im Verzeichnis /etc bleiben dabei jedoch erhalten, erst mit dem Parameter -P löscht die Paketverwaltung auch diese Dateien restlos von der Platte. Solange andere Pakete vom zu Deinstallierenden abhängen, entfernt Dpkg dieses nicht wirklich, sondern markiert es lediglich als gelöscht. In der Statusübersicht erkennen Sie das in der ersten Spalte: Dort erscheint vor dem Paketnamen nicht mehr ii, sondern ri (removed/installed, "entfernt") oder pi (purged/installed, "bereinigt").

Einige Anwendungen, darunter beispielsweise Apache, benötigen eine Ausgangskonfiguration. Bei der Installation eines Paketes fordert Dpkg Sie deshalb auf, die entsprechende Konfigurationseinstellungen anzugeben. Für eine Neukonfiguration bewegen Sie Dpkg über den Schalter --configure zur erneuten Abfrage der Konfigurationsdaten.

Komfort-Tool Apt

Dpkg kann lediglich lokal vorliegenden Pakete installieren, nicht aber solche aus dem Netz. Um diesen Umstand abzuhelfen, schufen die Debian-Entwickler am 31. März 1998 das Programm Apt ("A Package Tool"). Es holt Dateien von FTP- oder HTTP-Servern, löst selbstständig Abhängigkeiten auf und installiert das Paket im Anschluss.

Im Verzeichnis /etc/apt lagert die Datei sources.list, welche die Paketquellen für Apt enthält. Den Aufbau der Datei haben die Entwickler sehr einfach gehalten. Das Schlüsselwort deb für eine Quelle mit Binärprogrammen oder deb-src für Quelldateien leitet den Pfad für ein Paket-Repository ein. Als nächstes folgt der URI zum Top-Level-Pfad des Servers. Den dritten Teil bildet die Distributionsversion, zum Beispiel karmic für Ubuntus jüngstes Kind. Zum Schluss folgen die sogenannten Komponenten – in der Regel main, contrib oder non-free. Ein Beispiel einer Zeile aus Ubuntu 9.10 sieht folgendermaßen aus:

http://de.archive.ubuntu.com/ubuntu/ karmic main

Vor Beginn jeder Installation sollten Sie als erstes den Paket-Cache aktualisieren. Das erledigt der Befehl apt-get update (Abbildung 2). Anschließend spielen Sie die gewünschte Software mit apt-get install Paket ein. Nicht immer ist jedoch der Paketname bekannt. In diesem Fall suchen Sie mittels apt-cache search Begriff in der Paketdatenbank. Der Befehl gibt eine Liste aller Pakete aus, in deren Namen oder Beschreibung sich der gesuchte Begriff findet.

Abbildung 2: Vor der Aktualisierung des Systems oder Installation neuer Pakete ist es empfehlenswert, den Paketcache zu aktualisieren.

Um das System auf den neuesten Stand zu bringen, führen Sie apt-get upgrade oder apt-get dist-upgrade aus. Ein dist-upgrade installiert im Gegensatz zu upgrade auch neue Abhängigkeiten, sofern ein aktualisierbares Paket danach verlangt.

Mit der Zeit sammeln sich viele alte Pakete installierter Programme unter /var/cache/apt/archives an. Alle alten Paketversionen entsorgen Sie mit dem Befehl apt-get autoclean. Möchten Sie das Archiv-Verzeichnis gleich komplett leeren, rufen Sie stattdessen apt-get clean auf.

Genauso einfach wie das Installieren von Paketen funktioniert auch das Löschen. Ähnlich wie bei Dpkg können Sie dabei die Konfigurationsdateien wahlweise behalten oder mitsamt der Programmdateien aus dem System entfernen. Ein schlichtes apt-get remove Paket löscht die nur Programmdateien. Die zusätzliche Option --purge entfernt auch die Konfigurationsdateien. Nicht mehr auf dem System benötigte Pakete – also solche, die als Abhängigkeit anderer Pakete ins System kamen – entfernen Sie mittels apt-get autoremove.

Ausführlichere Informationen zu einem Paket fördert der Aufruf apt-cache show Paket zutage – Abbildung 3 zeigt einen Ausschnitt der Informationen zu Firefox. Neben der bloßen Beschreibung gibt Apt-cache unter anderem auch die Abhängigkeiten des Pakets an.

Abbildung 3: Apt-cache zeigt detaillierte Informationen zu bereits installierten oder im Paket-Repository befindlichen Paketen an.

Komfortabler Arbeiten mit Aptitude

Erscheint Ihnen das Gespann Apt-get/Apt-cache als zu umständlich zu bedienen, dann greifen Sie auf Aptitude zurück. Dabei handelt es sich wie bei Apt selbst um ein Tool, das Abhängigkeiten auflöst, den Paketcache aktualisiert, Pakete herunterlädt und auf dem System installiert. Es besitzt aber auch ein Konsolenfrontend (Abbildung 4), mit dem Sie unter anderem komfortabel die verfügbaren Pakete durchforsten. Dazu ist nichts weiteres notwendig, als Aptitude ohne zusätzliche Optionen aufzurufen. Die Bedienung des Frontends erfolgt weitgehend intuitiv, im Zweifelsfall konsultieren Sie die Man- beziehungsweise Info-Page des Programms (man aptitude oder info aptitude).

Abbildung 4: Mit Aptitude stöbern sie bequem im Paket-Repository, (de-)installieren Pakete oder aktualisieren das Systems.

Aptitude kombiniert alle Funktionen von Apt-get und Apt-cache in einer Anwendung: Wie gewohnt aktualisieren Sie den Paketcache mit aptitude update oder installieren Pakete mit der Anweisung aptitude install Paket . Programmdateien samt Konfigurationsdaten entfernt aptitude purge Paket aus dem System. Der Befehl aptitude remove Paket dagegen belässt die Konfigurationsdateien am ursprünglichen Ort. Ebenfalls mit an Bord sind die Optionen clean und autoclean zum (teilweise) Löschen des Paketeverzeichnisses sowie show zum Anzeigen der Paketinformationen.

Wie bereits erwähnt, lassen sich möglich Pakete vor einer Aktualisierung "einfrieren", sodass der Paketmanager sie bei bei einer Aktualisierung nicht überschreibt. Mit Dpkg lässt sich das nur relativ umständlich bewerkstelligen, Aptitude hingegen hat die Optionen hold und unhold bereits fest an Bord. Um ein bereits installiertes Paket nochmals einzurichten, führen Sie aptitude reinstall Paket aus (siehe Abbildung 5).

Abbildung 5: Aptitude bietet die Option reinstall an, mit der Sie ein Paket in der gleichen Version noch einmal installieren.

Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare
Ironie? wohl leider nicht.
Ferdinand Thommes, Montag, 30. November 2009 15:40:55
Ein/Ausklappen

Zitat: Das Duo lässt sich einfach bedienen und sorgt insbesondere für eine kinderleichte System- oder Distributionsaktualisierung – wie insbesondere Ubuntu zweimal jährlich
da fehlen doch im letzten Satzteil " – wie insbesondere Ubuntu zweimal jährlich " die Ironie Tags? :)
Denn sollte das ernst gemeint sein so möchte ich doch mal darauf hinweisen dass die Failures beim Upgeade aud eine neue Ubuntu Version rein gar nichts mit apt/dpkg zu tun haben.

greetz
ferdi


Bewertung: 111 Punkte bei 5 Stimmen.
Den Beitrag bewerten: Gut / Schlecht
-
Re: Ironie? wohl leider nicht.
Gottfried Kramer (unangemeldet), Freitag, 18. Dezember 2009 16:02:08
Ein/Ausklappen

Ohne jede Ironie:

Das mußte ja aus der sidux-Ecke kommen.


Bewertung: 0 Punkte bei 3 Stimmen.
Den Beitrag bewerten: Gut / Schlecht

1848 Hits
Wertung: 72 Punkte (1 Stimme)

Schlecht Gut

Infos zum Autor

Christian Meyer

Linux-Nutzer seit 1996, aktiv bei Gnome zwischen 2000 und 2006.


Infos zur Publikation

Infos zur Publikation

LinuxUser 06/2012

Aktuelle Ausgabe kaufen:

Heft bestellen Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,50 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 56,10) können Sie im LNM-Shop bestellen.

Tipp der Woche

Adobe AIR
Adobe-AIR-Programme installieren und (manuell) starten
Tim Schürmann, 14.05.2012 13:09, 0 Kommentare

Es gibt sie noch: neue Anwendungen, die Adobes Integrated Runtime voraussetzen. Aktuellstes und vermutlich auch größtes Beispiel ist das Adventure Botanicula

Aktuelle Fragen

gibt es ein Kommandozeilen Tool, um ein X11-Fenster in ein Anderes einzubetten?
GoaSkin , 21.05.2012 16:44, 0 Antworten
Das XEmbed-Protokoll ist u.A. dazu gedacht, dass man eine X11-Anwendung in eine andere wie ein Wi...
Apache2, Options -Indexes geht nicht
no no, 12.05.2012 19:01, 8 Antworten
Habe in apache2.conf folgendes stehen: Options -Indexes ...
LInux auf Dell LS H500
Andreas Endresl, 09.05.2012 08:54, 2 Antworten
Habe einen alten Dell Latitude LS H500 nur mit ext. Floppy und CD es geht nur immer eines von den...
Datenwiederherstellung unter Ubuntu 12.04 mit "Simple Backup" nach Umzug von Linux Mint
Christian Lottmann, 07.05.2012 13:33, 0 Antworten
Vor dem Umzug auf Ubuntu 12.04 habe ich unter Linux MInt mit "Simple Backup" voll (15.4.2012) und...
DKMS für den propritären NVIDIA-Treiber
Commander Data, 26.04.2012 22:02, 2 Antworten
Hallo an die Gemeinde. Ich habe hier ein interessantes Stück openSuSE gefunden. http://forums.op...