如何获取 rpm 规范文件中的规范文件路径

如何获取 rpm 规范文件中的规范文件路径

规范文件存在于源目录中。规范文件构建部分看起来像

%build
cd ~/path/sources
make

如果可以检测到规范文件路径,则可以避免 ~/path/sources 的硬编码。如何获取规范文件路径。

答案1

%{_specdir} /${name}.spec 

会做这项工作。看到这个Fedora 维基页面了解更多信息。

答案2

路径通常源自过程本身。如果您查看构建过程的输出,您会发现它在为过程的另一个阶段做准备时进入了各个目录。

简单地说,如果您将绝对路径更改为相对路径(并且您的源文件应该全部位于 SRPM 的有效负载中,或者如果这是新构建,则在构建之前移动到源树中),那么大部分问题都会消失。

另外,在 %prep 部分使用 echo,看看愚蠢的宠物技巧,例如

%prep echo %(目录名 %{Source0}) echo %(基名 %{S:1})

当你绝对确定自己确实需要做这样的恐怖事情时,那种混乱就会派上用场。如果可以的话,将其保留为稀有品。

比我更好的人:如果您看到这篇文章,请提醒我如何使其仅解析 %() 一次,而不是每次需要时?

相关内容