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