Linux-Tipp 1
Wie lösche ich mehrere
RPM-Pakete
auf einmal?
Haben Sie sich auch schon einmal gefragt, wie man mehrere, zu
einem Programm gehörige RPMs
in einem Rutsch löschen kann? Am schnellsten klappt dies
nicht etwa mit einem der zahlreichen Fronends à la
kpackage, sondern auf der Linux-Kommandozeile
(Shell
bzw. Terminal).
Erste Möglichkeit
rpm -e --allmatches [eindeutige Teilzeichenkette der Paketnamen]
Beispiel:
rpm -e --allmatches gnome-games
Dieses Beispiel löscht alle installierten RPM-Pakete,
in deren Paketbezeichnung die Zeichenkette "gnome-games"
vorkommt. Konkret sind dies in der Regel "gnome-games-[Versionsnummer].rpm"
und "gnome-games-devel-[Versionsnummer].rpm".
Doch Vorsicht: Der Systemverwalter (root) kann mit einem
solchen Befehl ziemlich viel Schaden am System anrichten
(man denke nur einmal an einen Befehl wie rpm -e --nodeps
--allmatches lib). Deswegen sollte man immer zunächst
überprüfen, welche Pakete durch den Befehl wirklich
gelöscht würden. Am einfachsten geht dies mit dem
Befehl
rpm -qa | grep [eindeutige Teilzeichenkette der Paketnamen]
Beispiel:
rpm -qa | grep gnome-games
Zweite Möglichkeit
Diese Variante ist vielleicht nicht so elegant wie die erste
Möglichkeit und funktioniert in dieser Form auch nur
für eine begrenzte Paketanzahl, dafür ist sie
jedoch für Einsteiger leichter auszubauen:
rpm -e `rpm -qa | grep [eindeutige Teilzeichenkette der
Paketnamen]`
Beispiel:
rpm -e `rpm -qa | grep gnome-games`
Achtung: Bitte tatsächlich `...`
(Backticks)
mit der Akzenttaste eingeben und keine Hochkommas ('...').
Jetzt stellt sich natürlich die Frage, warum dieser Befehl
prinzipiell dieselbe Aufgabe erledigt wie der unter
Möglichkeit 1 aufgeführte. Das liegt daran, dass alle
gängigen Shells unter Linux (bash, ksh, zsh und so weiter)
das oder die in Backticks eingeschlossene(n) Kommando(s) zuerst
ausführen und dessen/deren Standardausgabe dann an Stelle
des/der Backtick-Kommandos in die Kommandozeile eintragen
(Kommandosubstitution).
Ein anderes Beispiel für eine Kommandosubstitution ist
das folgende:
echo "Heute ist der `date '+%d.%m.%Y (%A)' ` "
Wenn Sie diesen Befehl eingeben, wird Linux Ihnen eine Zeile
wie "Heute ist der 26.11.2003 (Mittwoch)" präsentieren.
Last but not least noch ein Hinweis zu unserem obigen
RPM-Befehl: Bezüglich der Gefahren gilt das unter
Möglichkeit 1 Gesagte analog.
Weiterführende Literatur:
|