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

Что я могу сделать, чтобы безопасно восстановить свои пакеты yum после плохого обновления?

Я запускаю amazon linux на микросхеме EC2. Недавно я бегал sudo yum update --security в надежде, что он исправит Heartbleed. К сожалению, во время процесса обновления у меня закончилась память, и некоторые пакеты не обновились. Я попытался исправить это, перезапустив, а затем запустив sudo yum clean затем sudo yum update как показано ниже в pastebin, но проблемы с зависимостями все еще существуют.

Как я могу это исправить, ничего не нарушая?

Вот фрагмент вывода yum:

Error: initscripts conflicts with util-linux-ng-2.17.2-13.17.amzn1.i686
Error: initscripts conflicts with util-linux-ng-2.17.2-13.17.amzn1.x86_64
Error: Package: glibc-devel-2.12-1.107.43.amzn1.x86_64 (@amzn-main)
           Requires: glibc-headers = 2.12-1.107.43.amzn1
           Removing: glibc-headers-2.12-1.107.43.amzn1.x86_64 (@amzn-main)
               glibc-headers = 2.12-1.107.43.amzn1
           Updated By: glibc-headers-2.17-36.81.amzn1.x86_64 (amzn-updates)
               glibc-headers = 2.17-36.81.amzn1
           Available: glibc-headers-2.17-36.80.amzn1.x86_64 (amzn-main)
               glibc-headers = 2.17-36.80.amzn1

Вот полный журнал консоли: http://sebsauvage.net/paste/?e0f7235450f97bae#qq6QKe/Co+jR2T4FXfGo4w2H8aw7xZkE4z+iZXdMpQ8=

Переустановите Failed RPMS

Я видел, как эта проблема возникает, когда что-то выходит из строя во время транзакции RPM. База данных RPM может рассинхронизироваться с системой. В результате, то, что на самом деле есть в системе и что RPM считает установленным, различается.

СОВЕТ: Прежде чем делать что-либо из этого, создайте образ AMI, чтобы вы могли легко восстановить его, если что-то полностью выйдет из строя.

Ты можешь использовать rpm -qa --last чтобы получить список недавно установленных RPM.

Затем перестройте базу данных rpm, rpm --rebuilddb.

Затем вы можете использовать yum reinstall переустановить любой пакет, который был частью неудачных транзакций.

Это также должно выявить любые проблемы с зависимостями и попытаться их исправить.

В некоторых случаях мне приходилось вручную разрешать конфликты, скачивая rpm yum download и используя rpm сделать установку.

Если вам необходимо вернуться к ручной установке с помощью rpm затем ведите подробные записи, особенно когда задействован glibc.

Рекомендация

Я настоятельно рекомендую вам развернуть операции на AWS таким образом, чтобы вы могли легко запустить новый экземпляр EC2 и не беспокоиться о таких проблемах. Если вы используете выделенные тома EBS для своих данных и храните файлы конфигурации в другом месте, вы часто можете запустить новый экземпляр и вернуться к работе быстрее, чем устранять подобную проблему RPM. Когда у нас возникают подобные проблемы с EC2, мы обычно развертываем новый экземпляр из нашего настраиваемого AMI, переназначаем IP-адреса и на этом все. При необходимости мы можем провести анализ первопричин неисправных / поврежденных систем, не влияя на производственные операции.