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

yum upgrade дает:… конфликты между попытками установки [32-битного пакета] и [64-битного пакета]

На наших машинах с Red Hat 7.6 установлены 64-битные и 32-битные библиотеки.
Я создаю сценарий обновления для всех наших компьютеров, чтобы он запускался с нашими сценариями после установки, чтобы обновить все установленные пакеты.
yum -y upgrade вернуть много таких ошибок:
printers.pyc conflicts between libstdc++.i686 and libstdc++.x86_64
У меня много таких ошибок на каждой машине. Каждая машина индивидуальна. Я не могу просто удалить 32-битные конфликтующие пакеты, обновить, а затем переустановить 32-битные пакеты. Их слишком много.

Я пробовал:
yum upgrade -x '*.i686' но безрезультатно.

Как мне преодолеть эти ошибки в массовом порядке?

ОБНОВИТЬ:
Вот одно из сообщений об ошибке.

Ошибка проверки транзакции:
file * / path / to / file / * конфликты printers.pyc между попытками установки libstdc ++ - 4.8.5-36.el7_6.2.i686 и libstdc ++ - 4.8.5-36.el7_6.2.x86_64

Обратите внимание, что у меня есть одна и та же версия, доступная как для 32-разрядных, так и для 64-разрядных пакетов.
yum provides printers.pyc Возвращает 32- и 64-битные пакеты как установленные:

libstdc ++ - 4.8.5-36.el7.i686 и libstdc ++ - 4.8.5-36.el7.x86_64

Каждая машина индивидуальна. Я не могу просто удалить 32-битную libstdc ++ и «назвать это хорошим». У другой машины будут разные конфликты.

Мне нужно это написать. Мне приходится иметь дело со всем набором установленных RPM и просто удалить несколько пакетов onsie-twosie.

Можно ли сначала обновить ТОЛЬКО 64-битные пакеты, а затем обновить 32-х? Это поможет?

yum хочет, чтобы версии библиотеки совпадали. libstdc++ например, необходимо установить с одинаковым номером версии как для 32, так и для 64-разрядной версии.

Ваше предложение удалить 32-битные версии, а затем переустановить их не сработает; yum не позволит вам переустановить эти 32-битные версии, если они не соответствуют тому же номеру версии.

Случается, что, вероятно, доступно обновление для libstdc++.x86_64 а не для libstdc++.i686 в ваших репозиториях.

Есть несколько способов решить эту проблему:

  • попробуйте удалить свои 32-битные пакеты (как предлагает @MichaelHampton)
  • выяснить, почему у вас нет обновления для обеих версий (включение / отключение репозиториев)
  • сказать yum игнорировать некоторые пакеты при обновлении ...