我无法安装一组自定义生成rpms。 spec文件产生7个二进制rpms。 我用rpm -ivh安装了5个,然后决定我还需要剩下的两个。 当我尝试安装这些,rpm抱怨:
# 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
然而,这个确切的依赖关系已经安装:
# rpm -q foo foo-0.7.0-1.x86_64
我发现'rpm -R',它提供了有关软件包的更多细节:
# 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
唯一可以看到的是lib-cpp-devel软件包中的'-1:'标记,我无法解释。
什么是'-1:'可能与这个问题有关? 我怎样才能进一步debugging或解决它呢? 这是所有发生在一个相对新鲜的CentOS 6安装。
谢谢!
-1:标记是Epoch标记,所以看起来你的RPM可能是用Epoch等于1构build的。如果是这样的话, foo-lib-cpp-devel对foo的依赖必须包含Epoch ,就像这样:
Requires: foo = 1:0.7.0-1
或者,使用macros:
Requires: foo = %{epoch}:%{version}-%{release}
如果您确定这两个软件包是兼容的,则可以执行以下操作之一:
1A。 使用rpm安装新的foo-lib-cpp-devel软件包(可能必须使用–nodeps或–force开关)
OR