![如何提取 RPM 包的“Requires(pre)”字段?](https://linux22.com/image/1479370/%E5%A6%82%E4%BD%95%E6%8F%90%E5%8F%96%20RPM%20%E5%8C%85%E7%9A%84%E2%80%9CRequires(pre)%E2%80%9D%E5%AD%97%E6%AE%B5%EF%BC%9F.png)
我有一个 RPM 的 spec 文件,其中包含“Requires”和“Requires(pre)”。基本上是这样的:
Requires: /lib/lsb/init-functions, /sbin/iptables
Requires(pre): zip
如果我跑
rpm -pqR package.rpm
我得到了三个指定的要求。我想要一种方法来仅获取预依赖项(“Requires(zip)”),以便自动转换为 Debian“Pre-Depends”。我还尝试了 rpm --querytags 提供的(部分)键,但没有成功。
有什么建议吗?谢谢。
答案1
如果您添加该-v
选项,则rpm
显示该信息。例如,
$ rpm -qpR diffstat-1.61-1.x86_64.rpm
libc.so.6()(64bit)
libc.so.6(GLIBC_2.14)(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.3)(64bit)
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(PayloadIsXz) <= 5.2-1
rtld(GNU_HASH)
zlib
zlib-devel
但使用-v
$ rpm -qpR -v diffstat-1.61-1.x86_64.rpm
auto: libc.so.6()(64bit)
auto: libc.so.6(GLIBC_2.14)(64bit)
auto: libc.so.6(GLIBC_2.2.5)(64bit)
auto: libc.so.6(GLIBC_2.3)(64bit)
rpmlib: rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib: rpmlib(FileDigests) <= 4.6.0-1
rpmlib: rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib: rpmlib(PayloadIsXz) <= 5.2-1
auto: rtld(GNU_HASH)
manual: zlib
pre: zlib-devel