如果您使用 ViM 创建
.spec
文件,编辑器将为其使用骨架。非常方便!
但是生成的
%setup
宏有这个 -q
标志,但我在任何地方都找不到。
我在宏的max-rpm指南页面上没有找到任何提及,并且没有被rpmspec
扩展:
rpmspec --eval '%setup'
只返回
%setup
,并且
-p
不会改变任何东西。其他相关文档中也没有提及。 经过进一步调查,我注意到有很多宏没有被
rpmspec
扩展,即使我可以在
/usr/lib/rpm
(在我的 Fedora 上)中找到大量宏。所以我想知道:
-q
有什么用?
--test
命令的
rpm -b
标志。我可以看到我的系统上没有
rpm -b
,实际上我用
rpmbuild
完成了所有工作。在
rpmbuild
中没有
--test
标志。如何查看扩展脚本?
-q 是什么?
参见https://docs.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html-single/RPM_Guide/index.html#id366540
它代表:以最小的输出安静地运行。
为什么我看不到所有扩展?我是不是漏掉了什么?
我不是 100% 确定,但 %setup 很可能是term 并由 rpm 内部处理。它与 %if 相同,同样没有扩展。
前面提到的 Max RPM 指南声称存在 rpm -b 命令的 --test 标志。我可以看到我的系统上没有 rpm -b,实际上我用 rpmbuild 完成了所有工作。在 rpmbuild 中没有 --test 标志。如何查看扩展脚本?
Max RPM 已经很旧了。它写于 2000 年。此后就没有更新过。但它仍然是最好、最全面的指南之一。有些事情发生了变化。这是其中之一。我不知道有任何等同于 --test 的东西。存在“rpm --eval”和“rpm --showrc”。最后一个显示了系统上所有定义的宏。
前面提到的 Max RPM 指南声称存在 rpm -b 命令的 --test 标志。我可以看到我的系统上没有 rpm -b,实际上我用 rpmbuild 完成了所有工作。在 rpmbuild 中没有 --test 标志。这是因为过去
/usr/bin/rpm
二进制文件用于执行both rpm 软件包安装/更新/删除操作以及构建 rpm 软件包。为了使代码不那么复杂,与构建相关的内容稍后被提取到单独的
rpmbuild
二进制文件中,从而将
-b
选项从
rpm
移动到
rpmbuild
,并且由于某种原因,
--test
选项没有遵循沿着。
http://ftp.rpm.org/max-rpm/s1-rpm-inside-macros.html 包含 %setup
等人的完整文档(尽管可能有些过时)。