Назад | Перейти на главную страницу

Удалить установленные пакеты из одного репо и переустановить из CentOS?

У меня есть 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, что было большой страховкой.