I created a meta RPM package (say metapkg) that pulls all the dependencies I need on my system (CentOS 7). This package specifies the exact versions of its dependencies (without the architecture though).

Example : Requires: perl = 5.16.3-285.el7

When I try to upgrade my system with yum update, Yum complains about several dependency problems :

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-
           Installed: 1:grub2-2.02- (@anaconda)
               grub2 = 1:2.02-
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

My architecture is full x86_64, so I don't understand why Yum makes a difference between perl-5.16.3-285.el7 and perl-5.16.3-285.el7.x86_64.

I tried to specify the architecture in my meta-package dependencies but even if I do that, other packages fail to update...

Is there a way to workaround this behaviour ?


1 Answer 1


After some digging, I found that I didn't specify package's epoch in the dependencies versions. So, Yum sets the default epoch (0), which mismatches with the installed one (4 for my version of perl).

So, with a dependency like this :

Requires: perl = 4:5.16.3-285.el7

everything works as expected.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.