首页 文章

RPM依赖性错误

提问于
浏览
-2

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

以下是.spec文件的片段

==========================================

%define elX el5%定义arch x86_64

名称:my_rpm版本:1.0要求:

%准备

%define debug_package%

% Build

%安装

%文件

%defattr( - ,root,root)

/home/%/%/%_%/lib/libmy.so

==========================================

在编译libmy.so时,我将它链接到libxx.so,它作为另一个rpm的一部分安装 .

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

================================================== =========

rpm -ivh * rpm

错误:失败的依赖项:

  • rpm需要libxx.so()(64位)

================================================== =========

我们尝试了以下几点

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

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

1 回答

  • 3

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

    什么是输出

    $ rpm -q --whatprovides libXX.so
    

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

    AutoReqProv: no
    

    这将禁用 Requires: 的ALL自动检测 .

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

相关问题