RPM规范文件的构建阶段期间的RPM依赖性错误

时间:2011-09-12 05:13:37

标签: rpm rpm-spec

我的目的是通过RPM将已构建的libmy.so作为可安装的库分发。

以下是.spec文件的片段:

%define elX el5
%define arch x86_64

Name: my_rpm
Version: 1.0
Requires: <package name which installs libxx.so >

%prep

%define debug_package %{nil}

%build

%install

%files

%defattr(-, root, root)

/home/%{elX}/%{arch}/%{name}_%{version}/lib/libmy.so

在编译libmy.so时,我将其与作为另一个RPM的一部分安装的libxx.so链接。

安装作为上述步骤1的一部分创建的RPM时,即使机器上安装了libxx.so,它也会出现以下依赖性错误

$ rpm -ivh *rpm

error: Failed dependencies:

libxx.so()(64bit) is needed by *rpm

我们尝试过以下事项。

在分析过程中,我们发现libxx.so中没有ld.so.conf所在的路径。但是,添加libxx.so所在的路径条目对我们没有帮助。

请告诉我们是否需要执行任何其他步骤来消除此依赖项错误。

1 个答案:

答案 0 :(得分:3)

安装时,rpm正在RPM数据库中查找条目;它不测试系统上的文件或链接。

的输出是什么
$ rpm -q --whatprovides libXX.so

这将列出哪个包提供libXX.so。如果没有包提供它,您的RPM将具有依赖性错误。从Requires:条目中删除libXX.so。如果您没有手动指定它,则可能会自动检测到它。在spec文件中,您可以设置:

AutoReqProv: no

这将禁用Requires:的所有自动检测。

http://ftp.rpm.org/max-rpm/s1-rpm-depend-auto-depend.html