Проблемы с версией Multilib в CentOs 7

Когда я пытаюсь обновить YUM с помощью sudo yum update --exclude = kernel *, python * --skip-broken , я получаю Обнаружены проблемы с версией Multilib . Защищенные мульти-версии:

systemd-libs-219-30.el7_3.7.x86_64! = Systemd-libs-219-30.el7_3.6.i686 .

Как я могу решить эту проблему? У меня CentOS 7.3, и моя архитектура - x86_64.

Fout:  Multilib version problems found. This often means that the root
      cause is something else and multilib version checking is just
      pointing out that there is a problem. Eg.:

        1. You have an upgrade for systemd-libs which is missing some
           dependency that another package requires. Yum is trying to
           solve this by installing an older version of systemd-libs of the
           different architecture. If you exclude the bad architecture
           yum will tell you what the root cause is (which package
           requires what). You can try redoing the upgrade with
           --exclude systemd-libs.otherarch ... this should give you an error
           message showing the root cause of the problem.

        2. You have multiple architectures of systemd-libs installed, but
           yum can only see an upgrade for one of those architectures.
           If you don't want/need both architectures anymore then you
           can remove the one with the missing update and everything
           will work.

        3. You have duplicate versions of systemd-libs installed already.
           You can use "yum check" to get yum show these errors.

      ...you can also use --setopt=protected_multilib=false to remove
      this checking, however this is almost never the correct thing to
      do as something else is very likely to go wrong (often causing
      much more problems).

      Beschermde multilib-versies: systemd-libs-219-30.el7_3.7.x86_64!=systemd-libs-219-30.el7_3.6.i686
2
задан 8 April 2017 в 15:25
6 ответов

Сначала попробуйте:

yum install systemd-libs

, а затем

yum update --exclude=kernel*,python* --skip-broken
-1
ответ дан 3 December 2019 в 09:58

Подобные проблемы обычно возникают, когда в вашей системе установлены две разные версии одного пакета.

0
ответ дан 3 December 2019 в 09:58

Yum жалуется, что 64-битная и 32-битная версии RPM для systemd-libs в вашей системе не совпадают.

Вы увидите, что у него версия 219- 30.el7_3. 7 для x86_64 (64-разрядная версия) и версия 219-30.el7_3. 6 для i686 (32-разрядная версия).

Вы можете проверить версию пакет для каждой архитектуры в вашей системе с помощью этой команды:

$ rpm -q systemd-libs
systemd-libs-219-30.el7_3.6.i686
systemd-libs-219-30.el7_3.7.x86_64

Посмотрите, видите ли вы там какую-либо аномалию, например наличие двух версий systemd-libs для i686 ...

Если версии совпадают, то проблема может быть этот yum пытается обновить версию x86_64, но оставляет версию i686 позади.

Возможно, ваш - skip-broken каким-то образом запускает это, если версия пакета i686 каким-то образом " broken "to yum ...

Также возможно, что ваша система была перенастроена, чтобы рассматривать только 64-битные пакеты и больше не пытаться устанавливать (или поддерживать) 32-битные ...

Вы можете попробовать некоторые утилиты из пакета yum-utils к проблемам

Можете ли вы установить его?

$ sudo yum install yum-utils

Если да, попробуйте эту команду, чтобы завершить прерванные транзакции yum (которые могли быть причиной проблемы):

$ sudo yum-complete-transaction

Вы также можете использовать команда очистки пакетов . Например, если кажется, что у вас есть повторяющиеся пакеты (для 32-разрядной версии установлено несколько версий), попробуйте следующее:

$ sudo package-cleanup --cleandupes

Надеюсь, это поможет!

5
ответ дан 3 December 2019 в 09:58

список конфет установлен | grep systemd-libs
yum update systemd-libs.i686
yum переустановите systemd-libs.x86_64

, а затем перезагрузите систему

0
ответ дан 3 December 2019 в 09:58

У меня была аналогичная проблема, и я решил ее, удалив повторяющиеся версии нескольких пакетов:

package-cleanup --dupes

Затем удалите все новые версии из rdmdb

rpm -e --justdb --nodeps <package-version>

Затем yum upgrade снова работает и устанавливает все ожидающие обновления.

0
ответ дан 3 December 2019 в 09:58

У меня была точно такая же проблема. Centos 7, последняя версия, установленная с установленными репозиториями Epel и Remi. А потом я попытался обновиться, как всегда, зайдя в: /etc/yum.repos.d а в файле epel.repo в [epel] можно найти:

enabled = 1

строка

enabled = 1

должна быть установлена ​​на 1

В другом файле:

remi.repo

Точно такая же строка должна быть установлена ​​в 0.

Таким образом, мы выбираем обновления в репозитории epel, а не в репозитории remi, чтобы избежать конфликтов в версиях PHP.

Итак, при включенном репозитории epel и отключенном репозитории remi возникла ошибка. Я выполнил команду:

yum --skip-broken update

Обратите внимание, что мне нужно использовать --skip-broken, чтобы избежать ошибок в обновлениях PHP, поскольку они являются более новой версией, установленной из remi.

Если у меня нет двух системных библиотек, только одна x86_64, я думал, что это проблема зависимости репо.

Итак, вместо того, чтобы сначала использовать обновление с репозиторием Epel, на этот раз я сделал сначала обновление с репозиторием remi. Все прошло хорошо ... никаких ошибок, обновление позаботилось о ядре и других обновлениях из репозитория обновлений Centos, как обычно, а remi позаботился о материалах PHP. После этого я отключил remi repo:

  • Making enabled = 0 в файле remi.repo.

А затем включил репозиторий epel:

  • сделал enabled = 1 в файле epel.repo.

Затем я просто сделал yum update, так как весь php больше не показывал конфликтов, больше не было необходимости в параметре --skip-broken ...

И это сработало!

В конце концов, я обычно отключаю remi и снова включаю epel в следующий раз. Надеюсь это поможет.

0
ответ дан 26 March 2020 в 15:57

Теги

Похожие вопросы