Installierte Pakete aus einem Repo entfernen und von CentOS neu installieren?

Installierte Pakete aus einem Repo entfernen und von CentOS neu installieren?

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 --oldpackageder 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_archmussten ein wenig bearbeitet werden, da die Paketnamen von rpm-fusion ein wenig von den ursprünglichen CentOS-Paketnamen abwichen.

Ich hatte die Ausgabe des yumBefehls, der die RPM-Fusion-Pakete installiert hat, was eine große Versicherung war.

verwandte Informationen