我正在为一个rpm包编写一个.spec文件,我遇到了一个问题。我需要用另一个软件包的一个特定版本来安装这个软件包。让我们以python包为例。所以,我写到:
Requires : bash, grep, python >= 2.6.7-4b但是,即使python包在2.6.6版本中,也会安装这个包。如果删除python包,系统将显示我的包需要python 2.6.7。
有什么问题吗?
来自rpm -q --provides python的输出
Distutils
python(abi) = 2.6
python-abi = 2.6
python-ctypes = 1.0.1
python-hashlib = 20081120
python-sqlite = 2.3.2
python-uuid = 1.31
python-x86_64 = 2.6.6-52.el6
python2 = 2.6.6
python = 2.6.6-52.el6
python(x86-64) = 2.6.6-52.el6来自rpm -qpR $yourpackage.rpm的输出
/bin/sh
python >= 2.6.7-4b
bash
grep
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PartialHardlinkSets) <= 4.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(PayloadIsXz) <= 5.2-1发布于 2014-09-05 13:02:37
除非添加“Autoreq:no”,否则将忽略“”要求:“”标记。
新版本的rpmbuild自动计算需求,忽略“要求:”,除非关闭该功能。
我已经多次遇到这个问题,值得注意的是,您应该首先运行rpmbuild ,而不是 ''Autoreq: no‘,注意自动检测到的依赖项,并在最后运行之前添加它们到’Autoreq:no‘的“必需:”标记中。
还值得注意的是,依赖项的自动检测有点错误,并且有一些注释方面的问题。我用一个注释打包了一个perl脚本,其中包含“.然后使用一个模块.”不久前。Autoreq检测到它是perl模块"perl“,并将其添加到依赖项中,使我的rpm毫无用处。
https://stackoverflow.com/questions/23295429
复制相似问题