【问题标题】:RPM spec file questionsRPM 规范文件问题
【发布时间】:2013-08-09 21:07:06
【问题描述】:

我对 RPM 规范文件有疑问。

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

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

【问题讨论】:

    标签: rpm rpmbuild specifications


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

    【讨论】:

    • ad 1:为了保持通用性,所有其他部分都在目标系统上运行。您提到的不止这些:还有%verify scriptlets、%trigger scriptlets 等等。
    • 这非常有用,绝对让我朝着正确的方向开始。我终于能够 RPM 我的所有文件(sans tar :-))
    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-16
      • 1970-01-01
      • 1970-01-01
      • 2012-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-19
      相关资源
      最近更新 更多