У меня есть 62 пакета от RPMfusion, которые перекрыли исходные пакеты CentOS, и теперь я хотел бы вернуться к исходным пакетам CentOS.
Единственная идея, о которой я могу думать, это
BAD_PACKAGES="name1 name2 ..."
echo $BAD_PACKAGES |xargs rpm -e --nodeps
echo $BAD_PACKAGES |xargs yum install
Но это оставит систему в неисправном состоянии во время процесса.
Вопрос
Каков самый безопасный способ удалить эти пакеты, а затем переустановить их из репозитория CentOS?
Ты можешь Обновить к более старой версии с помощью --oldpackage
вариант rpm
:
rpm -Uvh --oldpackage package-a.1.23.rpm
Это намного безопаснее, чем rpm -e --nodeps
. Вы можете обновить несколько пакетов одной командой, чтобы не было сломанных зависимостей.
Это сработало, но было страшно, так как во время процесса сломалось множество критически важных сервисов.
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
пришлось немного отредактировать, поскольку имена пакетов из rpm-fusion немного отличались от исходных имен пакетов CentOS.
У меня был вывод из yum
команда, которая установила пакеты rpm-fusion, что было большой страховкой.