我的目的是通过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
所在的路径条目对我们没有帮助。
请告诉我们是否需要执行任何其他步骤来消除此依赖项错误。
答案 0 :(得分:3)
安装时,rpm
正在RPM数据库中查找条目;它不测试系统上的文件或链接。
的输出是什么
$ rpm -q --whatprovides libXX.so
这将列出哪个包提供libXX.so。如果没有包提供它,您的RPM将具有依赖性错误。从Requires:
条目中删除libXX.so。如果您没有手动指定它,则可能会自动检测到它。在spec文件中,您可以设置:
AutoReqProv: no
这将禁用Requires:
的所有自动检测。