1

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-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

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 ?

Thanks!

mgraff
  • 31
  • 3

1 Answers1

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.

mgraff
  • 31
  • 3