RPM 规范文件中每个指令(%build、%install、%clean 等)的预期用途是什么?
What is the intended use of each directive (%build, %install, %clean, etc.) in an RPM spec file?
最近我升级到新版本的 RPM (4.8.0),由于 %install
指令的行为发生变化,我的应用程序的构建过程严重中断。
根据我所做的一些网络拖网,我发现 %install
指令现在做的第一件事是删除构建目录并从头开始创建它。
这很好,只是我的规范文件已经在 %prep
和 %build
指令的构建目录中做了一些工作,然后被 [=10 的新行为破坏了=]指令。
一旦我发现了这一点,修复就很简单了:只需完成 %install
指令中的所有工作即可。
但为什么要改变?我猜我的工作流程不是 "proper" 的方式,早期版本的 RPM 可以容忍它,但现在这种容忍已经被移除。
那么, "proper" 工作流程是什么?各种指令的预期用途是什么?
%prep
extracts/etc。您的源文件等(即 Untar)
%build
构建您的二进制文件、文档等(即 ./configure && make
)
%install
将您的 installed/to-be-packaged 文件复制到 %buildroot
.
最近我升级到新版本的 RPM (4.8.0),由于 %install
指令的行为发生变化,我的应用程序的构建过程严重中断。
根据我所做的一些网络拖网,我发现 %install
指令现在做的第一件事是删除构建目录并从头开始创建它。
这很好,只是我的规范文件已经在 %prep
和 %build
指令的构建目录中做了一些工作,然后被 [=10 的新行为破坏了=]指令。
一旦我发现了这一点,修复就很简单了:只需完成 %install
指令中的所有工作即可。
但为什么要改变?我猜我的工作流程不是 "proper" 的方式,早期版本的 RPM 可以容忍它,但现在这种容忍已经被移除。
那么, "proper" 工作流程是什么?各种指令的预期用途是什么?
%prep
extracts/etc。您的源文件等(即 Untar)
%build
构建您的二进制文件、文档等(即 ./configure && make
)
%install
将您的 installed/to-be-packaged 文件复制到 %buildroot
.