【发布时间】:2014-11-25 00:59:21
【问题描述】:
我正在构建一个 RPM,它需要在安装完成后运行多个脚本来配置它以完成安装。我必须在 %post 部分运行脚本,因为配置取决于主机的类型。所有这一切都相当容易而且很好,但是每次我遇到 %post 部分的错误时,我都必须重建整个包,这大约需要 20 分钟。有没有办法跳过重新编译所有内容,只使用 %post 中的更改构建一个新包?
【问题讨论】:
我正在构建一个 RPM,它需要在安装完成后运行多个脚本来配置它以完成安装。我必须在 %post 部分运行脚本,因为配置取决于主机的类型。所有这一切都相当容易而且很好,但是每次我遇到 %post 部分的错误时,我都必须重建整个包,这大约需要 20 分钟。有没有办法跳过重新编译所有内容,只使用 %post 中的更改构建一个新包?
【问题讨论】:
如果您的规范文件没有创建随机构建目录并且之后不会删除该构建树,那么 make 可以省略更耗时的编译。 IE。类似于在 rpmbuild 中不使用 --clean 选项。
然后,您还可以在 rpmbuild 中使用 --short-circuit 标志来跳过构建的第一阶段。
【讨论】:
脚本在手动运行与从 RPM 安装运行时是否有所不同?您可以制作一个没有%post 的测试RPM,然后手动运行被测脚本(以root 身份)。在需要测试的每种主机类型上执行此操作,直到您认为自己掌握了它。 然后将其添加为%post 并尝试一下。
【讨论】: