| RPM - Redhat Package Manager |
|---|
Paket auf dem Installationsmedium finden
root@sonne> rpm -i VollständigerPaketname ist dann kein Problem. Ganz anders sieht es aus, wenn wir nicht genau wissen, welches Paket wir nachzuinstallieren haben. Wir können mittels root@sonne> rpm -qpl VollständigerPaketname die Inhaltslisten der "verdächtigen" Pakete einsehen oder, was sicher eleganter ist, uns eines Shellskriptes bedienen. Allerdings ist es gar nicht so einfach, ein Skript zu schreiben, das dann auch genau das tut, was wir von ihm erwarten. Nun, @micha hat in den www.linuxforen.de genau das Skript entworfen und vorgestellt, das nicht nur das Peket/die Pakete anzeigt, in dem/in denen unser Programm enthalten ist; es werden auch gleich die Installations-Verzeichnisse mit ausgegeben. Weiteren Komfort wie das mounten und das abschliessende umounten CD-ROM-Laufwerks war dann schnell ergänzt. Bevor Ihr das Skript benutzen könnt, müsst Ihr noch den mount-Pfad und das Verzeichnis zu Eurem Installationsmedium anpassen. Ich habe hier die Pfade für RedHat gewählt: #!/bin/sh
#
mount /mnt/cdrom
Directory="/mnt/cdrom/RedHat/RPMS/"
#
PrintHeader="true"
#
for i in `find $Directory -name "*.rpm"`;
do
for n in `rpm -qpl $i | grep "$1"`;
do
if [ "$1" = `basename $n` ];
then
if [ $PrintHeader = "true" ];
then
echo "`basename $i` :"
PrintHeader="false"
fi
echo $n
fi
done
if [ $PrintHeader = "false" ];
then
echo "---------------------------------------------"
PrintHeader="true"
fi
done
#
umount /mnt/cdrom
Legt das Skript in /usr/local/bin (zB. als findrpm) ab und verseht es mit den Ausführungsrechten: root@sonne> chmod +x findrpm Der Aufruf erfolgt dann mittels: root@sonne> findrpm DateiName nach obenProbleme mit der RPM-DatenbankZum Glück sind Probleme mit der RPM-Datenbank selten. Doch wenn plötzlich kein Update oder auch keine Deinstallation mehr möglich ist, wird man als User, dem so etwas noch nicht passiert ist, doch erst mal recht ratlos dastehen. Da man die RPM-Datenbank selbst nicht zu Gesicht bekommt, vermutet man sicher erst mal alles mögliche und erinnert sich vielleicht erst mal gar nicht an eine rpm-Option, die man irgendwann mal gelesen hat: root@sonne> rpm --rebuilddb Und genau das war es dann meist auch schon. Die rpm-Datenbank hatte ein internes Problem und wurde nun mit diesem Command wieder neu aufgebaut. Eurem Update-Vorhaben sollte nun nichts mehr im Wege stehen. Unvollständig installiertes RPM-Paket deinstallierenZuerst sollte mit root@sonne> rpm -q PaketName nachgeschaut werden, ob sich das Paket überhaupt in der RPM-Datenbank befindet. Wenn ja, sollte ein root@sonne> rpm -e PaketName das Paket löschen können, eventuell auch root@sonne> rpm -e --force PaketName oder gar root@sonne> rpm -e --force --nodeps PaketName Wenn das Löschen mit keinem der Befehle funktioniert oder das Paket nicht in der RPM-Datenbank vorhanden ist, kann versucht werden, das Paket zu installieren und dann wieder zu deinstallieren. |
| Autor: Omega-X |