LINUX.ORG.RU

yum-глюк

 , ,


0

2

Система: CentOS 7.3 x86_64.
Понадобилось на одном компьютере установить один пакет в 32-bit формате (i686).
Скачал последний srpm, собрал rpm, кинул в локальную репу, установил, OK.

На другом компьютере (репы общие, стоит 64-bit версия этой программы) делаю yum update ... yum предлагает обновить программу на 32-bitный вариант (версии одинаковые, но yum видать посчитал, что у 32-bit новее)?! Сначала подумал, что не правильно собрал пакет, но с официальными пакетами тоже самое!

Воспроизводимость:
Создаем локальную репу с официальными update-ми.
Выбираем неустановленный пакет имеющийся в update в двух вариантах (i686/x86_64)
Удаляем x86_64 пакет из update, обновляем repodata (createrepo, yum clean all).
Делаем yum install пакет (без указания версии и архитектуры), все нормально: ставится x86_64 версия из release-репы.
Делаем yum update, фигня: yum предлагает обновить x86_64 вариант на i686 из update-репы (с кучей i686 зависимых пакетов).

★★★★

Честно бага не вижу. Yum предлагает лучшее решение из возможных. При отсутствии версии под amd64 и обновлении он использует ту которая есть, т.е. i686. Когда пакет не установлен при установке он ставит родную amd64, если бы и ее не было - ставил бы i686.

trancefer ★★ ()
Ответ на: комментарий от trancefer

Честно бага не вижу. Yum предлагает лучшее решение из возможных.

?!
Т.е. если yum тебе предлагает, например, сменить разрядность xorg-сервера на i686 это нормально?! Кстати, то что он предлагает, не значит, что он сможет это сделать, все равно вывалится в ошибку после начала установки. И если уж это нормально, то почему он не предлагает это при yum install?!

arson ★★★★ ()
Ответ на: комментарий от arson

Предлагает сменить разрядность потому что сказано обновить пакет, но родной версии почему-то нет (вообще это нестандартная ситуация). Yum предполагает что i686 пакет запустится на amd64 системе и предлагает использовать его так как сказано было обновить, а новая версия есть только в таком варианте.

А вот когда пакет не установлен и yum сказано установить он ищет пакет своей $basearch (т.е. amd64) и ставит последнюю доступную версию в репозитории не доходя до просмотра i686 пакетов, так как нашел родной архитектуры. В случае, если бы не нашел для amd64 — предложил бы поставить i686. Т.е. при установке с нуля yum не с чем сравнивать устанавливаемую версию (в системе пакета-то еще нет) и ставит последнюю доступную своей архитектуры.

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

trancefer ★★ ()
Последнее исправление: trancefer (всего исправлений: 1)
Ответ на: комментарий от trancefer

Предлагает сменить разрядность потому что сказано обновить пакет,
А вот когда пакет не установлен ... не доходя до просмотра i686 пакетов
Вообще не вижу тут проблемы

Ты бредишь.

arson ★★★★ ()