如何使用 RPM 将.tgz 文件从 rpmbuild 的SOURCES
目录中获取到目标系统并在那里提取?%pretrans
我必须在该%pretrans
部分中执行此操作,因为 .tgz 文件包含需要在下面输入其他包的文件Requires
,并且我无法控制它们的内容。
如果有任何建议,我将不胜感激。
答案1
源用于rpmbuild
构建二进制 rpm 包。它发生在构建系统或开发人员机器上。
%pretrans
执行rpm
时间为用户在他的机器上安装/升级二进制包。当用户安装二进制包时,无法从 SOURCES 获取任何内容。这必须在“%build”和“%install”阶段完成。这些也可以在rpmbuild
构建系统或开发机器上执行。
您可能想查看基本的 Hello-world 示例https://rpm-packaging-guide.github.io/#hello-world
如果您在构建时需要其他包,请将它们指定为BuildRequires: some-package-needed-just-for-build
.例如BuildRequires: make
。
当您使用 Mock 进行构建时,这些 BuildRequires 会自动下载并安装到正在构建包的 chroot 中。