claim.gif
Linux Magazin Linux User Easy Linux Ubuntu User International Linux Community
Erschienen in EasyLinux 12/2004

Informationen über RPM-Pakete finden

Ausgepackt

von Elisabeth Bauer


Alle reden von RPM-Paketen, doch was steckt da eigentlich drin? Wir zeigen, wie Sie mehr über solche Dateien herausfinden und Probleme bei der Installation von Programmen lösen.

Software kommt unter Linux in zwei Varianten daher: Da sind zum einen Archive mit dem Quelltext des Programms, typischerweise mit der Dateiendung tar.gz oder tar.bz2. Um ein solches Programm zu installieren, braucht der Anwender einen Compiler, der den Quelltext in ein ausführbares Programm übersetzt. Dieses Verfahren ist jedoch umständlich und gerade für den Einsteiger nicht leicht zu bewältigen. Die meisten Linux-Distributionen liefern deshalb Software bereits fertig kompiliert in Paketform aus. Das erleichtert die Installation erheblich. Fedora Core, Suse und Mandrake Linux verwenden dafür das Paketformat RPM.

Installiert der Anwender ein solches RPM-Paket über das grafische Tool seiner Distribution, packt dieses das Paket aus und befördert alle Dateien in die richtigen Verzeichnisse. Zusätzlich kümmert sich der Installer um Abhängigkeiten. Braucht ein Programm zum Funktionieren noch weitere Software, zeigt der Installer das an und spielt diese idealerweise gleich mit ein. Das geht dann gut, wenn alle benötigte Software auf den Distributions-CDs enthalten ist. Manchmal erscheint jedoch einfach nur eine Fehlermeldung, und der Benutzer muss das fehlende Paket selbst aufspüren.

Dann ist es hilfreich, wenn man mehr über das Paketverwaltungssystem weiß. In diesem Artikel zeigen wir, wie Sie sich Informationen zu Paketen beschaffen und wie Sie diese deuten.

Fedora Core 2

Düster sieht es unter Fedora Core aus. Das grafische Paketverwaltungs-Tool bietet nur eine in Gruppen sortierte, begrenzte Auswahl der in der Distribution enthaltenen Software. Eine Suche und eine Detailanzeige zu einzelnen Paketen fehlen komplett. Fedora-Nutzern bleibt so nur der Griff zur Shell. Im Kasten "Ausflug auf die Kommandozeile" beschreiben wir den Umgang mit dem Kommandozeilen-Tool rpm. Unter anderen Distributionen lässt sich dies natürlich genauso anwenden.

Mandrake Linux

Besser dran sind die Nutzer von Mandrake Linux: Dessen Installer RPMDrake liefert deutlich mehr Informationen als Fedora Core. Sie starten das Tool über den Eintrag Einstellungen / Paketierung / Software installieren im K-Menü. Die Suchmaske nimmt sowohl Programm- als auch Dateinamen an, eine fehlende Bibliothek ist so schnell gefunden. Normalerweise zeigt RPMDrake im Fenster rechts nur die Paketbeschreibung an, wenn Sie ein Paket anklicken. Markieren Sie die Checkbox Alle Informationen, erhalten Sie auch eine Liste der enthaltenen Dateien (Abbildung 1).

RPMDrake lässt sich allerdings nur dazu nutzen, Informationen über noch nicht installierte Software zu gewinnen. Wer mehr über die Pakete auf der Platte erfahren will, nutzt dazu das separate Programm Software entfernen, das genauso funktioniert.

Suse Linux

Am komfortabelsten haben es Benutzer von Suse Linux. Dort zeigt bereits der Konqueror, wenn sie ein RPM-Pakte anklicken, detaillierte Informationen an (Abbildung 2). Im Reiter Beschreibung finden Sie die Versionsnummer, den Autor und eine mehr oder minder ausführliche Erklärung des Programms, Protokoll listet die Änderungen auf, Dateien alle im Paket enthaltenen Dateien. Klicken Sie auf Installiere Paket mit YaST, packt YaST das Paket aus und kopiert die Dateien in die angebenen Verzeichnisse.

Mehr über RPM-Pakete verrät YaST, den Sie über System / YaST im K-Menü starten. Wählen Sie links oben unter Filter die Option Suche aus, spürt YaST nicht nur Programmpakete auf, sondern beherrscht noch einige weitere Tricks.

Erhalten Sie bei der Installation eines Pakets etwa die Fehlermeldung, ein bestimmtes Programm fehle, können Sie dort das Paket finden, das die gesuchten Dateien -- meistens sind es Bibliotheken -- enthält. Geben Sie dazu den Dateinamen, zum Beispiel libogg.so.0, ein und markieren Sie die Checkbox bei Provides. Die Suche wirft nun das Paket libogg aus. Ein Klick auf den Reiter Abhängigkeiten verrät, warum: Im Feld beinhaltet ist die gesuchte Datei eingetragen (Abbildung 3). Dort stehen üblicherweise alle wichtigen Dateien, die das Paket für andere Programme bereitstellt.

In den Feldern darunter sehen Sie die Programme und Bibliotheken, von denen dieses Paket wiederum abhängt. Um Libogg zu installieren, müssen alle dort aufgelisteten Dateien im System vorhanden sein oder mitinstalliert werden. Interessant ist auch das Feld Konflikt darunter: Manche Programme können nicht zusammen auf einem System existieren. Zum Beispiel darf es in der Regel nur einen Mail-Server geben. Versuchen Sie ein solches Programm einzuspielen, müssen Sie das vorhandene zuerst entfernen.

Paketsuche im Internet

Beschränkt man sich auf die bei seiner Distribution mitgelieferte Software, lösen die Installer YaST, RPM-Drake und Fedoras Paketverwaltung Abhängigkeiten automatisch auf und spielen die nötigen Zusatzpakete ein. Doch wer hin und wieder ein Programm aus dem Internet installiert, gerät recht schnell in Abhängigkeitskonflikte. Dann heißt es, die fehlenden Pakete ebenfalls im Internet aufzuspüren.

Oft genügt schon die Eingabe des Programmnamens zusammen mit Ihrer Distribution, Version und dem Stichwort rpm in eine normale Suchmaschine wie Google. Glücklicherweise gibt es jedoch auch spezielle Suchmaschinen [2]. http://tettnang.freshrpms.net/ ist eine wahre Fundgrube für Fedora-Benutzer, auf RPMSeek (http://www.rpmseek.com/) finden Sie Pakete für zahlreiche Distributionen. Suse-Nutzer mit schneller Netzanbindung werden an http://hitme.resetbutton.de/pin/ ihre Freude haben. Geben Sie in das Web-Formular einen Dateinamen ein und wählen Ihre Distributionsversion aus, verrät das Tool nicht nur, auf welcher CD sich das passende Paket befindet, sondern bietet auch gleich Download-Links an. (eba)

Abb. 1: Über "Alle Informationen" zeigt Mandrakes Paketverwalter die Dateien im gesuchten Paket an.

Abb. 2: Unter Suse Linux verrät der Datei-Manager Konqueror den Inhalt eines RPM-Pakets.

Abb. 3: Markieren Sie die Checkbox "Provides" und suchen nach dem Dateinamen einer fehlenden Bibliothek, zeigt YaST an, in welchem Paket sich die fehlende Library versteckt.
Ausflug auf die Kommandozeile

Grafische Frontends bieten in der Regel nur einen Bruchteil der Möglichkeiten des Kommandos rpm. Genau wie über YaST unter Suse Linux, RPMDrake unter Mandrake und Fedoras Paketverwaltungs-Tool installieren oder entfernen Sie mit rpm Software-Pakete [1]. Dazu müssen Sie als Administrator angemeldet sein, auf der Kommandozeile nutzen Sie dafür das Kommando su.

Doch auch dem normalen Benutzer verrät rpm eine ganze Menge an Informationen.

rpm -qa

gibt alle auf dem System installierten Pakete aus. Damit Sie in der Liste bequem blättern können, leiten Sie das Ergebnis an den Pager less weiter: rpm -qa | less zeigt jeweils nur soviel an, wie ins Terminal-Fenster passt, mit der Leertaste springen Sie zur nächsten Seite. Mit der Taste [Q] beenden Sie das Programm.

Haben Sie so den Namen des gesuchten Pakets herausgefunden, gibt

rpm -qi paketname

die Beschreibung aus, die auch die grafischen Tools anzeigen. Eine Liste aller Dateien im Paket erhalten Sie mit

rpm -ql paketname

Auch die Abhängigkeiten zeigt rpm mit zwei Optionen an. Wer zum Beispiel wissen will, welche Dateien Mozilla anbietet, die von anderen Programmen benötigt werden, ruft

rpm -q --provides mozilla

auf. Die Dateien und Pakete, die Mozilla selbst zur Installation braucht, wirft der Befehl

rpm -q --requires mozilla

aus. Die gleichen Abfragen funktionieren auch mit aus dem Internet heruntergeladenen Paketen, die Sie noch nicht installiert haben. Dort müssen Sie jedoch den vollen Dateinamen und Pfad angeben und als Option ein p ergänzen. Zum Beispiel zeigt

rpm -qpl scribus-1.1.7-0.fdr.4.2.i386.rpm

den Inhalt des Scribus-RPM-Pakets von der EasyLinux-Download-Seite an. In der Abbildung sehen Sie die requires-Abfrage für das Mozilla-Paket auf der Suse-CD.

Manchmal will man nicht wissen, welche Dateien in einem Paket stecken, sondern zu welchem Paket eine bestimmte Datei gehört. Auch dafür bietet rpm eine Option. Geben Sie

rpm -qf dateiname

ein, zeigt es den Paketnamen an. So verrät rpm -qf /usr/bin/konsole (unter Suse rpm -qf /opt/kde3/bin/konsole) dass das Programm konsole im Paket kdebase steckt. Bei diesem Aufruf müssen Sie immer den vollen Pfad einer Datei angeben. In welchem Verzeichnis ein Programm liegt, finden Sie mit dem Kommando which programmname heraus.

Infos
[1] Hans-Georg Eßer: "Mit der RPM-Datenbank sprechen", EasyLinux 07/2003, S. 78 ff. http://www.easylinux.de/Artikel/ausgabe/2003/07/078-rpmdb/
[2] Hans-Georg Eßer: "Software suchen und finden", EasyLinux 06/2003, S. 14 ff. http://www.easylinux.de/Artikel/ausgabe/2003/06/014-finden

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 | © 2012 Linux New Media AG | Last modified: 2007-01-25 17:30

[Linux-Magazin] [LinuxUser] [Linux-Community] [Admin-Magazin] [Ubuntu User] [Smart Developer] [Linux Events] [Linux Magazine] [Ubuntu User] [Admin Magazine] [Smart Developer] [Linux Magazine Poland] [Linux Community Poland] [Linux Magazine Brasil] [Linux Magazine Spain] [Linux Technical Review]