修改RPM包,去除依赖

修改RPM包,去除依赖

长话短说:

我们构建了一个自动检测依赖关系的 RPM 包(文件Requires中没有)。.spec如何从该 RPM 包中删除依赖项。

长话短说:-> 我将动态库与二进制文件一起发布,但 RPM 自动依赖项机制显然将发布的库也列为依赖项。如何避免这种情况?

答案1

我不希望 rpm 自动处理这些依赖项;您可以使用:

AutoReqProv: no

但是,我多次打包自己的二进制文件及其依赖的库; rpm 从来没有给我带来任何那样的麻烦;也许你的包装方式不是最佳的?

有关自动依赖关系的进一步阅读:http://ftp.rpm.org/max-rpm/s1-rpm-depend-auto-depend.html

答案2

列出的这些依赖项rpm -qp -requires <pkg>.rpm虚拟包如果自动依赖<pkg>.spec在文件中指定。这些虚拟包不是库soname,而只是虚拟包名称(即使它们看起来像soname)。

例如,在 Fedora 27 上,这有效

$ rpm -q --whatprovides "libQt5Core.so.5()(64bit)"        
qt5-qtbase-5.9.2-5.fc27.x86_64   

但这并不

$ rpm -q --whatprovides libQt5Core.so.5
no package provides libQt5Core.so.5
$ rpm -q --whatprovides libQt5Core
no package provides libQt5Core
$ rpm -q --whatprovides Qt5Core
no package provides Qt5Core

如果您自己<pkg>.rpm捆绑了这些库(即提供这些虚拟包),那么如果这些虚拟包未安装在系统上,RPM 不会抱怨,因为它们是随您的包一起提供的。

相关内容