![]() |
|
||||||||||||||||||
|
|||||||||||||||||||
|
|||||||||||||||||||
von Heike Jurzik
Software installieren, aktualisieren und wieder loswerden -- mit den Programmen Synaptic (grafisch) [1], APT und Aptitude (beide Kommandozeile) [2] administrieren Sie Ubuntu und Knoppix im Handumdrehen. Diese Tools sind allesamt Frontends des Paket-Managers dpkg: Der "Debian GNU/Linux package manager" sorgt hinter den Kulissen für ein stabiles System und verwaltet Informationen zu den Software-Paketen (Dateiendung .deb). Dazu gehört auch, auf Abhängigkeiten zwischen den Paketen hinzuweisen; so sorgt dpkg beispielsweise dafür, dass das System keine KDE-Programme installiert, solange die benötigte Bibliothek kdelibs fehlt. Ebenso weigert sich dpkg, ein Programm zu entfernen, das andere Komponenten noch benötigen.
Um Missverständnissen vorzubeugen: dpkg löst die Abhängigkeiten nicht selbständig auf und installiert bzw. löscht weitere Pakete -- dafür gibt es die schon erwähnten Frontends. Dennoch hat auch dpkg selbst Einiges zu bieten, und es ist gut, ein paar Optionen dieses Kommandozeilen-Tools kennenzulernen.
Um ein Paket, das auf der Festplatte oder einem Datenträger liegt, einzuspielen, rufen Sie dpkg mit der Option -i und dem Paketnamen (ggf. den vollständigen Pfad zur Datei) auf, das Listing Installation von "info" zeigt ein Beispiel.
| Installation von "info" |
$ sudo dpkg -i /media/cdrom0/info_4.7-2.2ubuntu1.1_i386.deb Wähle vormals abgewähltes Paket info. (Lese Datenbank ... 101561 Dateien und Verzeichnisse sind derzeit installiert.) Entpacke info (aus .../info_4.7-2.2ubuntu1.1_i386.deb) ... |
Die Ausgabe verrät, was im Hintergrund abläuft. Sollte ein Paket ungelöste Abhängigkeiten haben und weitere Software benötigen, beschwert sich dpkg und informiert, was fehlt:
dpkg: Abhängigkeitsprobleme verhindern Konfiguration von apache2-common: apache2-common hängt ab von libapr0 (>= 2.0.50); aber: Paket libapr0 bereitstellt, ist nicht installiert. ...
In diesem Fall suchen Sie die benötigten Pakete zusammen und installieren alle in einem einzigen dpkg-Aufruf -- einfacher geht es jedoch, wenn Sie mit einem Frontend (Synaptic, APT oder Aptitude) arbeiten.
Genauso leicht werden Sie Pakete wieder los: Mit
sudo dpkg -r Paket(e)
entfernen Sie eines oder mehrere Pakete. Dabei verschwinden lediglich die Programmdateien von der Platte, nicht aber die Konfigurationsdateien. Das ist vor allem dann praktisch, wenn Sie das Paket zu einem späteren Zeitpunkt erneut installieren und nicht nochmal einrichten wollen. Um die Konfigurationsdateien gleich mit von der Platte zu fegen, setzen Sie hingegen die Option -P ein:
sudo dpkg -P Paket(e)
Der Paket-Manager weist auch beim Löschen darauf hin, wenn Abhängigkeiten zu anderen Paketen bestehen; auch hier erklärt dpkg ausführlich, warum es die Arbeit verweigert.
Häufig heißen die Pakete anders als die eigentlichen Programme. Mit verschiedenen Parametern kommen Sie den Paketnamen aber auf die Schliche. Um beispielsweise herauszufinden, zu welchem Paket das Programm ls (listet Dateien auf der Kommandozeile auf) gehört, suchen Sie zunächst den vollen Pfad zur ausführbaren Datei mit dem Programm which:
$ which ls /bin/ls
Anschließend finden Sie mit dpkg heraus, zu welchem Paket diese Datei gehört:
$ sudo dpkg -S /bin/ls coreutils: /bin/ls
Beachten Sie, dass Sie mit dieser Option nur in installierten Paketen suchen können.
Eine andere Möglichkeit, nach Paketnamen zu suchen, bietet der Parameter -l. Ohne weitere Angaben schreibt dieser einfach nur eine Liste aller installierten Pakete und ihren Status auf die Kommandozeile (Abbildung 1). Die recht lange Liste leiten Sie am besten über das Pipe-Zeichen | an den Pager less weiter und betrachten sie seitenweise:
sudo dpkg -l | less
In der ersten Spalte sehen Sie die gewünschte Aktion (u = unbekannt, i = installieren, r = entfernen und p = löschen einschließlich Konfigurationsdaten), in der zweiten den aktuellen Zustand (n = nicht installiert, i = installiert, c = nicht mehr installiert, aber Konfigurationsdateien noch da, u = entpackt, aber noch nicht konfiguriert, f = fehlgeschlagene Konfiguration und h = halb installiert). Die dritte Spalte gibt eine nähere Beschreibung des Fehler aus, danach folgen der Name des Paketes, die Version und eine Kurzbeschreibung.
Mit einem kleinen Trick verhindern Sie, dass lange Paketnamen "abgeschnitten" werden: Definieren Sie direkt im Aufruf die Umgebungsvariable COLUMNS:
$ sudo COLUMNS=140 dpkg -l | less ... ii kdemultimedia-kio-plugins 3.4.0-0ubuntu3 Support for browsing audio CDs under Konqueror ...
Da dpkg -l im Gegensatz zum Parameter -S auch nicht installierte Pakete und ihren Status anzeigt, suchen Sie mit dieser Option auch nach Paketnamen von Programmen, die sich (noch) nicht auf Ihrem System befinden. Dabei setzen Sie zusätzlich das Sternchen * ein, wenn Sie Teile des Namens unbestimmt lassen wollen. Dem Wildcard-Zeichen stellen Sie einen Backslash voran, damit die Shell den Ausdruck nicht auswertet. So finden Sie beispielsweise mit einem Befehl alle Pakete, die die Zeichenkette "word" enthalten -- das Ergebnis zeigt das Listing Suche nach Word.
| Suche nach Word |
$ sudo COLUMNS=140 dpkg -l \*word\* ii antiword 0.35-1 Converts MS Word files to text and ps ii kword 1.3.5-2ubuntu1 a word processor for the KDE Office Suite un wordlist <keine> (keine Beschreibung vorhanden) un wordnet <keine> (keine Beschreibung vorhanden) un wordtrans-kde <keine> (keine Beschreibung vorhanden) |
Der Aufruf dpkg -C zeigt unvollständig installierte Pakete an; darüber hinaus macht der Paket-Manager einen Vorschlag zur Lösung des Problems:
$ sudo dpkg -C Die folgenden Pakete wurden entpackt, wurden aber noch nicht konfiguriert. Sie müssen mit dpkg --configure oder dem Konfigurationsmenü in dselect konfiguriert werden, damit sie ordnungsgemäß funktionieren: apache2-common Next generation, scalable, extendable web server
Mit dem Parameter -L zeigen Sie schnell an, welche Dateien ein installiertes Paket mitbringt. Als weiteres Argument geben Sie den Paketnamen an, z. B.:
$ sudo dpkg -L antiword /. /usr /usr/bin /usr/bin/antiword /usr/bin/kantiword /usr/share /usr/share/antiword /usr/share/antiword/8859-1.txt ...
Für noch nicht installierte Pakete listen Sie deren Inhalt mit der Option -c auf, z. B.:
sudo dpkg -c /home/huhn/liba52-0.7.4-dev_0.7.4-1_i386.deb
Wer auf Debian-basierten Distributionen genauer in den Programmpaketen suchen will, erhält mit dpkg eine Chance dazu -- muss sich allerdings auf die Kommandozeile begeben. Wie Sie aus .deb-Paketen sogar einzelne Dateien heraus kopieren, verrät der Kasten Midnight Commander. (hge)
| Midnight Commander |
|
Mit dem textbasierten Datei-Manager Midnight Commander (Paketname mc) greifen Sie auf einzelne Dateien in .deb-Archiven zu, ohne diese installieren zu müssen. Dazu starten Sie den Datei-Manager über den Befehl mc und wechseln ins Verzeichnis, wo das Debian-Paket liegt. Zur Navigation nehmen Sie die Pfeiltasten zur Hilfe, in Verzeichnisse hinein gehen Sie mit [Eingabe]. Auch das .deb-Paket können Sie mit [Eingabe] "betreten", als wäre es ein Verzeichnis. Der Midnight Commander präsentiert dann den Paketinhalt (Abbildung 2). Abb. 2: Mit dem Midnight Commander untersuchen Sie den Inhalt von ".deb"-Dateien vor der Installation.Einzelne Dateien kopieren Sie mit den folgenden Schritten aus dem Paket heraus:
|
| Infos |
|
[1] Grafische Paket-Tools für Knoppix und Ubuntu, Max Werner: "Pakete am laufenden Band", EasyLinux 11/2005, S. 34 ff.
[2] Paketverwaltung mit APT, Heike Jurzik: "Packstation", EasyLinux 11/2005, S. 84 f., http://www.easylinux.de/2005/11/084-pakete/ |
Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links" nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedruckten Fassung entsprechen.
Druckerfreundliche Version |
Feedback zu dieser Seite |
Datenschutz |
© 2010 Linux New Media AG |
Last modified: 2007-04-05 11:10
[Linux-Magazin]
[LinuxUser]
[Linux-Community]
[Admin-Magazin]
[Ubuntu User]
[Linux Events]
[Linux Magazine]
[Ubuntu User]
[Admin Magazine]
[Linux Magazine Poland]
[Linux Community Poland]
[Linux Magazine Brasil]
[Linux Magazine Spain]
[Linux Technical Review]