|
||||||||||||||
RPM Kommandos
RPM heißt RedHat Packet Manager und ist, wie der Name schon sagt ein Programm zur Paketverwaltung, welches zum Beispiel auch von anderen Programmen benutzt wird. Eines davon ist Kpackage. Es gibt aber auch noch eine ganze Menge anderer Programme, um Paketmanager wie den RPM zu steuern. Man sollte jedoch hier nicht die Macht der Kommandozeile unterschätzen. Der RPM bietet hier eine Vielzahl von Funktionen, die oft von solchen Programmen gar nicht richtig genutzt werden. Zumindest habe ich noch nicht die ultimative Umsetzung gesehen. Deshalb finde ich es nicht verkehrt, auch einmal ein paar Befehle zu kennen, die man im Alltag gebrauchen kann. wer einfach nur eine Suchmaschine für RPM-Pakete sucht, der wird hier fündig. Vorweg sei gesagt, dass man wie immer Hilfe durch Eingabe von man rpm bekommt, was zum Anzeigen der rpm-Manuals führt. Beispiel eins: Man möchte wissen, welche Pakete man denn nun so installiert hat, weil man dem Installationsprogramm nicht richtig traut oder sicher sein will, dass ein bestimmtes Paket dabei ist. Bei Eingabe von rpm -qai > Mandrake7.0.txt werden die Paketinformationen sämtlicher installierter Pakete in die Datei Mandrake7.0.txt geschrieben. Möchte man nun zum Beispiel wissen, ob das Paket Kpackage installiert ist, kann man dies zum Beispiel mit cat Mandrake7.0.txt | grep kpackage tun. Falls Kpackage installiert ist, wird jetzt die passende Paketbeschreibung ausgegeben. Sollte dies nicht zum Ziel führen, kann man auch nach der Datei kpackage suchen. Dazu nutzt man anstatt der Optionen "-qai" die Optionen "-qal" des rpm. Dadurch werden alle Dateinamen mit komplettem Pfad, der auf dem Rechner mit Hilfe von RPMs installierten Dateien in diese Datei geschrieben. Gibt man dann "cat Mandrake7.0.txt | grep kpackage" ein, führt das zur Ausgabe aller Verzeichnisse, in denen das Wort kpackage vorkommt. Dazu gehören natürlich auch Dokumentation etc... aber trotzdem kann man so feststellen, ob das Gesuchte vorhanden ist oder nicht. Es ist nun nicht schwer, sich zu überlegen, dass man als Option "-qail" benutzen kann, wenn man sowohl die Paketinfos, als auch alle Dateinamen haben will. Beispiel zwei: "libtralala nicht gefunden" oder so ist eine bekannte Fehlermeldung, wenn man versucht, ein aus dem Netz gesogenens Programm zu installieren. Der Paketmanager teilt hier mit, dass das Programm leider die Funktionen, die in der sagenumwobenen "libtralala" enthalten sind, benötigt, um zu funktionieren. Also macht man sich auf die Suche nach dieser Bibliothek. Führt man die in Beispiel eins dargestellten Schritte aus, kann man sich auch selbst davon überzeugen, dass die "libtralala" nicht vorhanden ist. Man legt also die RPM-CD seiner Distribution ein und mounted sie mit "mount /dev/ usw...". So weit, so gut. Im Folgenden gehe ich davon aus, dass man sich im "/"-Verzeichnis befindet! Doch wie bekommt man nun die Information, ob sich meine "libtralala" auf dieser CD befindet? Auch dafür gibt es ein paar lustige Befehle( Vielen Dank an Martin Rasp für diesen Tip mit den Unterverzeichnissen! ). Wenn man weiß, wo die RPMs sind, gibt man zum Beispiel rpm -qpil /mnt/cdrom/Mandrake/RPMS/*.rpm > /home/jens/Mandrake7.0.txt ein, was die RPM-Beschreibungen und sämtliche Dateien inklusive Pfad in die Datei Mandrake7.0.txt schreibt, welche hier im Verzeichnis /home/jens/ liegt. /mnt/cdrom/ ist hier der mountpoint des CD-Rom Laufwerkes und /Mandrake/RPMS/ das Verzeichnis, wo die *.rpm Dateien liegen. Nun kann es ja sein, dass man eine CD hat, von der man nicht weiß, in welchen Verzeichnis die Pakete liegen und man hat weder Lust noch Zeit, durch die gesamte Verzeichnisstruktur zu surfen. Dann benutzt man stattdessen den Befehl rpm -qpil `find /mnt/cdrom/ | grep ".rpm"` > /home/jens/Mandrake7.0.txt Man sollte auf die richtigen Hochkommata achten. Bei beidem geschieht im Prinzip das Gleiche, nur werden hier alle RPM-Pakete sämtlicher Unterverzeichnisse berücksichtigt. Nun hat man eine Datei, in der alle Paketinformationen der auf der CD enthaltenen Pakete gespeichert sind. Durch den Einsatz von "grep" kann man auch hier herausfinden, ob unsere gesuchte Datei "libtralala" überhaupt vorhanden ist. Dazu gibt man grep libtralala /home/jens/Mandrake7.0.txt
ein. Gibt es keine Ausgabe, so ist die gesuchte Datei nicht vorhanden.
Dann macht man alles nochmal mit einer anderen CD. Gibt es genau
eine Ausgabezeile von dem Format Der rpm bietet noch viel mehr! Diese zwei Beispiele waren nur sehr beschränkt, dafür aber aus dem Alltag gegriffen. Mit rpm -qf Dateiname kann man zum Beispiel herausfinden, zu welchem Paket eine bestimmte Datei gehört. Allerdings funktioniert das offensichtlich nur mit bereits installierten Paketen, so dass diese Option wohl nicht zum Suchen von noch nicht installierten Paketen geeignet ist. Ansonsten hoffe ich, einen kleinen Einblick in die Vielseitigkeit des rpm gegeben zu haben und vor allem sollte jetzt klar sein, dass man damit Dinge machen kann, die sonst nicht so einfach sind. Angeblich soll es ein Script namens "rpmfind" geben, welches die Aufgaben erledigt, die ich eben auf so umständliche Art beschrieben habe. Doch dieses wollte sich bei mir nicht installieren lassen, da es eine bestimmte Version von rpm erwartet. In einem solchen Fall macht man das doch lieber per Hand und archiviert nebenbei die Paketinfos aller CD-Roms.
| |||||||||||||||||||||||||
| Impressum - Datenschutzerklärung |