我的目的是通过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
时,我将它与libxx.so
相关联,libxx.so
是作为另一个RPM的一部分安装的。
在安装作为上述步骤1的一部分创建的RPM时,即使在机器上安装了$ rpm -ivh *rpm
error: Failed dependencies:
libxx.so()(64bit) is needed by *rpm
,它也会产生以下依赖性错误
libxx.so
我们尝试过以下的事情。
在分析过程中,我们观察到ld.so.conf
所在的路径不存在于libxx.so
。但是,添加rpm
所在的路径条目对我们没有帮助。
请告诉我们是否需要执行任何其他步骤来删除此依赖项错误。
安装时,$ rpm -q --whatprovides libXX.so
正在RPM数据库中查找条目;它不测试系统上的文件或可链接的文件。
什么是输出
Requires:
这将列出哪个包提供libXX.so。如果没有包提供它,您的RPM将具有依赖性错误。从AutoReqProv: no
条目中删除libXX.so。如果您没有手动指定它,则可能会自动检测到它。在您的spec文件中,您可以设置:
Requires:
这将禁用所有自动检测http://ftp.rpm.org/max-rpm/s1-rpm-depend-auto-depend.html。
qazxswpoi