Dependencies RPM缺少依赖项

Dependencies RPM缺少依赖项,dependencies,rpm,Dependencies,Rpm,我正在创建具有以下共享对象的RPM: libexample.so --> libexample.so.1.0.1 libexample.so.1.0.1 当我使用rpmbuild创建RPM时,我看到RPM提供了libexample.so.1.0.1。 但是,在require部分我看到了libexample.so 在项目的makefile中,我引用了libexample.so 当我试图安装rpm时,它会给出一个错误“缺少依赖项:libexample.so”,即使它打包为指向libexamp

我正在创建具有以下共享对象的RPM:

libexample.so --> libexample.so.1.0.1
libexample.so.1.0.1
当我使用
rpmbuild
创建RPM时,我看到RPM提供了
libexample.so.1.0.1
。 但是,在require部分我看到了
libexample.so

在项目的
makefile
中,我引用了
libexample.so

当我试图安装rpm时,它会给出一个错误
“缺少依赖项:libexample.so”
,即使它打包为指向
libexample.so.1.0.1的链接文件

所以问题在于RPM没有考虑到我正在打包
libexample.So
(这是指向
libexample.So.1.0.1

但是,我使用
--nodeps
选项安装了rpm,一切正常

所以,我的问题是,我应该如何修改以避免出现缺少依赖项的错误

为了验证缺少的依赖项是由链接文件引起的,我将链接文件更改为实际共享对象(
cp libexample.so.1.0.1 libexample.so
),rpm没有给出缺少的依赖项错误

请有人告诉我我缺少什么,以及如何修复RPM中缺少的依赖项错误。非常感谢您的帮助和时间。

试试跑步

rpm -q --requires _your_rpm_name_
看看它是否返回了与您期望的不同的内容。我怀疑自动依赖项脚本可能会将依赖项设置为与您期望的不同的内容。通过将下面的标记添加到等级库文件,然后手动调用所需的包,可以禁用自动依赖项:

AutoReqProv: no
Requires: _rpm_providing_libexample.so_
看 然后试着跑步

rpm -q --requires _your_rpm_name_
看看它是否返回了与您期望的不同的内容。我怀疑自动依赖项脚本可能会将依赖项设置为与您期望的不同的内容。通过将下面的标记添加到等级库文件,然后手动调用所需的包,可以禁用自动依赖项:

AutoReqProv: no
Requires: _rpm_providing_libexample.so_

我不是专家,但我认为问题在于RPM不了解sonames。如果RPM文件有依赖项,它将检查RPM系统


请参阅。

我不是专家,但我认为问题在于RPM不了解sonames。如果RPM文件有依赖项,它将检查RPM系统


请参阅。

规范文件没有什么特别之处。除文件外,所有部分均为空。在%文件部分,它指向包含所有要打包文件的目录。(例如,%atrib…/a/b/c——所有要打包的文件都在/a/b/c下;包括共享库。)要么您使用的术语“提供”和“需要”错误(在rpm上下文中有特殊含义),要么您正在做一些非常可疑的事情。无论如何,发布你的规范文件。规范文件没有什么特别之处。除文件外,所有部分均为空。在%文件部分,它指向包含所有要打包文件的目录。(例如,%atrib…/a/b/c——所有要打包的文件都在/a/b/c下;包括共享库。)要么您使用的术语“提供”和“需要”错误(在rpm上下文中有特殊含义),要么您正在做一些非常可疑的事情。不管怎样,把你的规格文件贴出来。谢谢。这个问题的产生是由于一些国家缺少奏鸣曲。所以。RPM使用SONAMEs来构建依赖关系。谢谢你的回答。这个问题的产生是由于一些国家缺少奏鸣曲。所以。RPM使用SONAMEs来构建依赖关系。谢谢你的回答。