I'm having trouble installing a set of custom build rpms. The spec file produces 7 binary rpms. I installed 5 of them using rpm -ivh and then decided that I also needed the remaining two. When I try to install those, rpm complains:
# sudo rpm -ivh foo-lib-cpp-devel-0.7.0-1.x86_64.rpm
error: Failed dependencies:
foo = 0.7.0-1 is needed by foo-lib-cpp-devel-1:0.7.0-1.x86_64
Yet that exact dependency is already installed:
# rpm -q foo
foo-0.7.0-1.x86_64
I discovered 'rpm -R', which provides more details on the package:
# rpm -qvRp foo-lib-cpp-devel-0.7.0-1.x86_64.rpm
auto: /usr/bin/pkg-config
manual: boost-devel
manual: libevent-devel >= 1.2
auto: libfoo.so.0()(64bit)
auto: libfootnb.so.0()(64bit)
auto: libfooz.so.0()(64bit)
auto: pkgconfig(foo) = 0.7.0
rpmlib: rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib: rpmlib(FileDigests) <= 4.6.0-1
rpmlib: rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib: rpmlib(VersionedDependencies) <= 3.0.3-1
manual: foo = 0.7.0-1
manual: zlib-devel
rpmlib: rpmlib(PayloadIsXz) <= 5.2-1
The only suspicious thing I see is the '-1:' token in the lib-cpp-devel package, which I can't explain.
What is the '-1:' and could that be related to this issue? How can I debug this further or workaround it? FWIW this is all occuring on a relatively fresh install of CentOS 6.
Thanks!
Best Answer
The
-1:
token is the Epoch tag, so it looks like your RPM may have been built with an Epoch equaling 1. If that's the case,foo-lib-cpp-devel
's dependency onfoo
must include the Epoch, like so:Or, using macros: