【发布时间】:2017-07-05 11:54:29
【问题描述】:
我正在创建一个包含以下共享对象的 RPM:
libexample.so --> libexample.so.1.0.1
libexample.so.1.0.1
当我使用 rpmbuild 创建 RPM 时,我看到 rpm 提供了 libexample.so.1.0.1。
但是,在要求部分我看到libexample.so
在项目的makefile 中我提到了libexample.so
当我尝试安装 rpm 时,它会给出错误 "Missing dependency: libexample.so",即使它被打包为指向 libexample.so.1.0.1 的链接文件
所以问题在于 RPM 没有考虑到我正在打包 libexample.so(这是指向 libexample.so.1.0.1 的链接)
但是,我使用--nodeps 选项安装了 rpm,一切正常。
所以,我的问题是我应该如何修改以避免出现缺少依赖项的错误。
为了验证缺少依赖项是由于链接文件引起的,我将 libexample.so 从链接文件更改为实际共享对象 (cp libexample.so.1.0.1 libexample.so),并且 rpm 没有给出缺少依赖项的错误。
请有人帮忙告诉我我缺少什么以及如何修复 RPM 中缺少的依赖项错误。非常感谢您的帮助和时间。
【问题讨论】:
-
规范文件没有什么花哨的。除文件外,所有部分都是空的。在 %files 部分,它指向包含所有要打包的文件的目录。 (例如 %atrib ... /a/b/c -- 所有要打包的文件都在 /a/b/c 下;包括共享库。)
-
要么你使用了错误的术语“provides”和“requires”(它们在 rpm 上下文中具有特殊含义),要么你正在做一些非常可疑的事情。无论如何,发布您的规范文件。
标签: dependencies rpm