rpm在哪里寻找依赖项?
我有一个使用rpmbuild构建的rpm.让我们说它是sample.rpm.
它成功构建. rpm具有可执行文件(让我们称之为init). 当我尝试使用rpm -ivh sample.rpm安装它时,它显示我失败的依赖项. 假设错误是失败的依赖关系:example.so这意味着rpm无法找到此共享对象文件. (即使so文件存在于同一目录中). 所以,我将rpm安装为rpm -ivh sample.rpm –nodeps(因为我知道我有所需的so文件). 为什么rpm无法安装那些rpms呢? 那么为什么rpm无法安装sample.rpm(它究竟在哪里寻找依赖项)?
RPM文件的依赖项在“Requires:”行的.spec文件中指定.
示例SPEC文件: Summary: <Summary for my Linux project> Name: <Name for my Linux project> Version: 2.5.1 Release: GA Requires: libx1.so >= 2.6.3 BuildArch: i586 Group: System / Applications License: GPL 2.0 Vendor: <my organization> 您还可以运行此命令以确定需要哪些依赖项: $rpm -q --requires <my_rpm> libx1.so.2 $ 应该通过RPM安装依赖项libx1.so本身,以便将其存在输入RedHat Package Manager维护的数据库中.换句话说,文件系统上libx1.so的物理存在不是依赖性测试的标准. 要找出哪个包提供依赖项,请运行以下命令: $rpm -q --whatprovides libx1 如果没有软件包提供libx1.so,则除非从“Requires:”行中删除libx1.so,否则RPM将继续显示依赖项错误. 要禁用自动检测依赖项,可以将其添加到.spec文件中: AutoReqProv: no 更多信息是在rpm.org和rpm5.org. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |