Как решить проблему “дубликатов” в yum?

Вопрос или проблема

В момент замешательства и нетерпения я сильно повредил свою ОС. Вот в чем дело…

Система: CentOS 7

Проблема: важные пакеты, такие как SAMBA, не работают, и yum ничего не делает.

Как все началось: я установил kmod-xpad, который требовал обновления ядра. Это новое ядро никогда не работало, но я мог загрузиться со старого ядра в загрузчике. Я сделал рутинное обновление пакетов через yum. Позже я попытался удалить kmod-xpad, но это не удалось. Теперь система постоянно говорит мне, что мне нужно перезагрузиться для установки обновлений. Это еще хуже, я не могу смонтировать сетевой диск через Samba. Я получаю сообщение об ошибке, похожее на…

/sbin/mount.cifs: /usr/lib64/samba/libreplace.so: версия SAMBA_4.1.1' не найдена (необходима для /lib64/libwbclient.so.0)
/sbin/mount.cifs: /usr/lib64/samba/libwinbind-client.so: версия `SAMBA_4.1.1' не найдена (необходима для /lib64/libwbclient.so.0)

Попытавшись исправить SAMBA, я обнаружил, что yum совершенно запутался и имел незавершенные транзакции. Я искал решения без успеха (например, таких как Почему “yum update” терпит неудачу с множеством дубликатов, после многих месяцев без обновлений?)

Сообщения об ошибках yum:
Когда я запускаю yum clean all и yum update, я сталкиваюсь с ошибкой разрешения зависимостей и мне сообщают, что существует 374 существующих проблем rpmdb, которые по сути являются множеством дублирующих пакетов. Вот фрагмент:

--> Завершено разрешение зависимостей
Ошибка: Пакет: avahi-libs-0.6.31-13.el7.x86_64 (@anaconda)
           Требуется: avahi = 0.6.31-13.el7
           Удаляется: avahi-0.6.31-13.el7.x86_64 (@anaconda)
               avahi = 0.6.31-13.el7
           Обновлен: avahi-0.6.31-14.el7.x86_64 (база)
               avahi = 0.6.31-14.el7
Ошибка: avahi-libs конфликтует с avahi-0.6.31-14.el7.x86_64
Ошибка: avahi-autoipd конфликтует с avahi-0.6.31-14.el7.x86_64

...
Вы можете попробовать использовать --skip-broken, чтобы обойти проблему
 ** Найдено 374 существующих проблемы rpmdb, вывод 'yum check' следует:
 1:NetworkManager-1.0.0-14.git20150121.b4ea599c.el7.x86_64 дублирует 1:NetworkManager-0.9.9.1-29.git20140326.4dba720.el7_0.x86_64

...
avahi-libs-0.6.31-14.el7.x86_64 дублирует avahi-libs-0.6.31-13.el7.x86_64
avahi-ui-gtk3-0.6.31-14.el7.x86_64 имеет установленные конфликты avahi < ('0', '0.6.31', '14.el7'): avahi-0.6.31-13.el7.x86_64
avahi-ui-gtk3-0.6.31-14.el7.x86_64 дублирует avahi-ui-gtk3-0.6.31-13.el7.x86_64
bash-4.2.46-12.el7.x86_64 дублирует bash-4.2.45-5.el7_0.4.x86_64
...

Журнал yum
А вот основные события из моего yum.log:

Apr 24 11:34:08 Обновлено: linux-firmware-20140911-0.1.git365e80c.el7.noarch
Apr 24 11:34:13 Установлено: kernel-3.10.0-229.1.2.el7.x86_64
Apr 24 11:34:14 Установлено: kmod-xpad-0.0.6-3.el7.elrepo.x86_64
May 08 13:38:28 Обновлено: libgcc-4.8.3-9.el7.x86_64
May 08 13:38:28 Обновлено: centos-release-7-1.1503.el7.centos.2.8.x86_64
May 08 13:38:28 Обновлено: python-urlgrabber-3.10-6.el7.noarch
May 08 13:38:28 Обновлено: 1:control-center-filesystem-3.8.6-18.el7.x86_64
May 08 13:38:28 Обновлено: hyperv-daemons-license-0-0.25.20141008git.el7.noarch

... (множество пакетов)...

May 08 13:40:31 Обновлено: xorg-x11-server-common-1.15.0-33.el7_1.x86_64
May 08 13:40:31 Обновлено: xorg-x11-server-Xorg-1.15.0-33.el7_1.x86_64
May 08 14:02:03 Удалено: kmod-xpad-0.0.6-3.el7.elrepo.x86_64

Это хорошее решение?
Прямо сейчас я подумываю удалить дубликаты, следуя совету на форуме CentOS:

rpm -e --justdb <package-version>

Это звучит утомительно, и я не уверен, что это действительно решит мою проблему. Это ситуация, которая требует переустановки?

Любые советы будут оценены.

Я пришел к частичному решению: yum update --skip-broken смог вернуть основные функции, такие как mount. Однако у yum все еще есть проблемы с разрешением зависимостей и дубликатами. Я не знаю, почему “–skip-broken” сработал в этот раз; я уже пробовал это один раз с подобной командой yum, и это ничего не дало.

Ответ или решение

Для решения проблемы с "дубликатами" в менеджере пакетов yum, следуйте следующим шагам, которые помогут исправить ошибки зависимости и восстановить работоспособность системы.

1. Очистка кэша YUM

Начните с удаления всех кэшей yum, чтобы избежать проблем из-за устаревших данных:

sudo yum clean all

2. Проверка базы данных RPM

Проведите проверку базы данных RPM на наличие потенциальных проблем:

sudo rpm -Va

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

3. Устранение проблем с зависимостями

Попробуйте выполнить обновление с использованием опции --skip-broken, которая позволяет игнорировать проблемы с зависимостями:

sudo yum update --skip-broken

Вы уже упомянули, что эта команда частично улучшила ситуацию, так что продолжайте использовать её, если она указывает на возможность восстановить другие функции.

4. Устранение дублирующихся пакетов

Если у вас по-прежнему есть дубликаты в базе данных RPM, вы сможете удалить их с помощью следующей команды. Сначала используйте:

sudo yum check

Эта команда покажет вам все проблемы с пакетами, включая дублирующиеся.

Затем, для статей, находящихся в конфликте, используйте:

sudo rpm -e --justdb <имя_пакета>-<версия>

Убедитесь, что вы точно знаете, какие пакеты удаляете, так как это может повлиять на вашу систему. Например:

sudo rpm -e --justdb avahi-libs-0.6.31-14.el7.x86_64

Это действие удалит только запись о пакете из базы данных, оставляя файлы на диске, но уберёт данный конфликт.

5. Переустановка проблемных пакетов

При необходимости (если всё ещё наблюдаются проблемы) примите решение переустановить конкретные пакеты:

sudo yum reinstall <имя_пакета>

Это может помочь перезаписать повреждённые файлы и устранить конфликты.

6. Обновление ядра

Если все вышеперечисленные шаги не решают проблемы, возможно, стоит обратить внимание на свою версию ядра. Иногда обновление ядра может устранить проблемы с зависимостями. Убедитесь, что вы находитесь на стабильной версии:

sudo yum install kernel

7. Восстановление системы

Если после всех этих манипуляций проблема не решилась, возможно, будет разумно рассмотреть вариант восстановления или переустановки системе.

Заключение

Работа с дубликатами пакетов и зависимостями в yum может быть сложной и рискованной, но следуя данным шагам, вы сможете восстановить стабильность системы. Помните, что всегда полезно делать резервные копии важных данных перед выполнением операций, которые могут нарушить вашу систему.

Оцените материал
Добавить комментарий

Капча загружается...