Ich habe 62 Pakete von RPMfusion, die die Upstream-Pakete von CentOS überschrieben haben, und jetzt möchte ich zu den ursprünglichen CentOS-Paketen zurückkehren.
Die einzige Idee, die mir einfällt, ist
BAD_PACKAGES="name1 name2 ..."
echo $BAD_PACKAGES |xargs rpm -e --nodeps
echo $BAD_PACKAGES |xargs yum install
Dadurch würde das System während des Vorgangs jedoch beschädigt.
Frage
Was ist der sicherste Weg, diese Pakete aus dem CentOS-Repo zu entfernen und anschließend neu zu installieren?
Antwort1
Du kannstAktualisierungauf eine ältere Version mithilfe --oldpackage
der folgenden Option rpm
:
rpm -Uvh --oldpackage package-a.1.23.rpm
Dies ist viel sicherer als rpm -e --nodeps
. Sie können mehrere Pakete mit einem Befehl aktualisieren, sodass keine Abhängigkeiten unterbrochen werden.
Antwort2
Das Folgende hat funktioniert, war aber beängstigend, da während des Vorgangs zahlreiche kritische Dienste kaputt gingen.
rpm -qa --queryformat "%{NAME}.%{ARCH} %-35{DISTRIBUTION}\n" | grep -i "rpm-fusion" | awk '{print $1}' > /root/list_arch
cat /root/list_arch | xargs rpm -e --nodeps
cat /root/list_arch | xargs yum -y install
list_arch
mussten ein wenig bearbeitet werden, da die Paketnamen von rpm-fusion ein wenig von den ursprünglichen CentOS-Paketnamen abwichen.
Ich hatte die Ausgabe des yum
Befehls, der die RPM-Fusion-Pakete installiert hat, was eine große Versicherung war.