1

我对 RPM 规范文件有疑问。

  1. 执行规范文件的观点是什么?规范文件是否意味着控制在源机器上执行 rpmbuild 时会发生什么,或者当 RPM 安装在目标机器上时会发生什么?
  2. 如果我的想法只是获取 tar.gz 中的文件夹和文件,请将它们放在 RPM 中,然后在 RPM 安装点部署这些文件夹和文件。我在 %build 和 %install 部分做什么?
  3. 如何在 %files 部分引用我希望最终部署在目标机器上的文件?我是在源机器上还是在目标机器上引用它们。

我很抱歉这些问题似乎含糊不清或业余,但我确实对这个概念和我引用的各种网站都使用 make install 有疑问

4

2 回答 2

6
  1. 两者(如果我正确理解您的问题)。在 %prep, %build %install 中,您可以控制构建服务器上运行的内容。在 %pre,post,preun,postun 中,您可以控制在 RPM 卸载/安装期间目标服务器上运行的内容。
  2. 如果您不构建任何内容,则 %build 可以为空。您想在 RPM 中打包 tar 文件并在目标服务器中解压它们吗?这不是一个好方法。最好将文件打包在 tar 中,让 RPM 处理更改等。
  3. 因为它们将在目标机器上。
于 2013-08-11T08:38:14.800 回答
0

广告 2.:在其中一个阶段中,您将 tar 解压缩到 中%buildroot,而其他阶段保持为空。阶段的任务或多或少是经过深思熟虑的:在 中%prep,您通常解压缩源代码,在%build构建二进制文件时,%install然后将二进制文件放入构建根目录中。由于此处没有构建过程,因此可以将其留空。

现在它变得很哲学:将您的 tar 解压到目标文件夹中是%prep“解压”还是“安装”?我认为两者都是,所以你可以选择其中一个。

纯粹的理论是将源代码解压缩到您的工作空间中%prep并将文件复制到 中%install,但这对我来说似乎是学术性的和不必要的。

于 2013-08-11T09:45:26.583 回答