RPM spec文件问题

时间:2013-08-08 08:20:34

标签: rpm rpmbuild specifications

我对RPM spec文件有疑问。

  1. 执行spec文件的观点是什么? spec文件是否意味着控制在源计算机上执行rpmbuild时会发生什么,或者在目标计算机上安装RPM时会发生什么?
  2. 如果我的想法只是获取tar.gz中的文件夹和文件,请将它们放在RPM中,然后在RPM安装点将它们部署到那些文件夹和文件中。我该怎么做%build和%install部分?
  3. 如何在%files部分中引用我想要最终部署在目标计算机上的文件?我是在源计算机上还是在目标计算机上引用它们。
  4. 我很抱歉这些问题看似含糊不清或业余但我真的有这个概念的问题,我引用的各种网站都使用make install

2 个答案:

答案 0 :(得分:6)

  1. 两者(如果我理解你的问题)。在%prep,%build%install中,您可以控制构建服务器上运行的内容。在%pre,post,preun,postun中,您可以在RPM un / install期间控制目标服务器上运行的内容。
  2. 如果您不构建任何内容,%build可以为空。是否要在RPM中打包tar文件并在目标服务器中解压缩它们?这不是一个好方法。最好将文件打包在tar中,让RPM处理更改等等。
  3. 因为他们将在目标机器上。

答案 1 :(得分:0)

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

现在它变得富有哲理:将你的tar解压缩到目标文件夹%prep“解包”或“安装”?我认为这两者都是,所以你可以选择其中任何一个。

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