Yum update жалуется на зависимость (несоответствие архитектуры)
Я создал пакет мета RPM (скажем, metapkg
) который вытягивает все зависимости, которые мне нужны в моей системе (CentOS 7). Этот пакет указывает точные версии его зависимостей (но без архитектуры).
Пример: Requires: perl = 5.16.3-285.el7
Когда я пытаюсь обновить мою систему с yum update
Yum жалуется на несколько проблем с зависимостями:
Error: Package: metapkg-1.1.0-1.noarch (myupdates)
Requires: perl = 5.16.3-285.el7
Installed: 4:perl-5.16.3-285.el7.x86_64 (@anaconda)
perl = 4:5.16.3-285.el7
Error: Package: metapkg-1.1.0-1.noarch (myupdates)
Requires: grub2 = 2.02-0.17.0.1.el7.centos.4
Installed: 1:grub2-2.02-0.17.0.1.el7.centos.4.x86_64 (@anaconda)
grub2 = 1:2.02-0.17.0.1.el7.centos.4
Error: Package: metapkg-1.1.0-1.noarch (myupdates)
Requires: vim-enhanced = 7.4.160-1.el7
Installed: 2:vim-enhanced-7.4.160-1.el7.x86_64 (@anaconda)
vim-enhanced = 2:7.4.160-1.el7
Error: Package: metapkg-1.1.0-1.noarch (myupdates)
Requires: lvm2 = 2.02.115-3.el7_1.1
Installed: 7:lvm2-2.02.115-3.el7_1.1.x86_64 (@anaconda)
lvm2 = 7:2.02.115-3.el7_1.1
Моя архитектура заполнена x86_64, поэтому я не понимаю, почему Yum делает разницу между perl-5.16.3-285.el7
а также perl-5.16.3-285.el7.x86_64
,
Я попытался указать архитектуру в моих зависимостях метапакетов, но даже если я это сделаю, другие пакеты не смогут обновиться...
Есть ли способ обойти это поведение?
Спасибо!
1 ответ
После некоторых копаний я обнаружил, что не указывал эпоху пакета в версиях зависимостей. Итак, Yum устанавливает эпоху по умолчанию (0
), что не соответствует установленному (4
для моей версии Perl).
Итак, с такой зависимостью:
Requires: perl = 4:5.16.3-285.el7
все работает как положено.