rpm -R 与 zypper info --requires

rpm -R 与 zypper info --requires

考虑以下:

root# rpm -qR foobar
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadIsLzma) <= 4.4.6-1

root# zypper info --requires foobar
Loading repository data...
Reading installed packages...

Information for package foobar:
-------------------------------
Respository: @System
Name: foobar
...
Requires: java-1_7_0-openjdk

那么为什么地狱Zypper 是否说需要 Java,但 RPM 认为不需要 Java?

更重要的是,为什么 Zypper 安装这个包并且不是安装Java??这里发生了什么?

答案1

事实证明答案很简单。在 RPM 规范文件中,该Requires:标记被误解为该%description部分的一部分。上面的输出实际上是这样的

Description:
...
Requires: java-1_7_0-openjdk

这使得它就像 Zypper 所说的包需要 Java,但是实际上它只是描述字段中的文字。咕噜!

移至Requires:规范文件中的正确部分,现在一切都很好。

相关内容