运用 RPM 打包软件,第 1 部分: 构建和分发包ITeye - AG环亚娱乐

运用 RPM 打包软件,第 1 部分: 构建和分发包ITeye

2019年02月28日15时25分52秒 | 作者: 飞莲 | 标签: 运用,文件,装置 | 浏览: 822

咱们自始至终剖析一下这个 spec 文件。第 1-5 行界说在文件其余部分中运用的方便变量。第 7-15 行运用 参数: 值 的方式设置若干个必需的参数。在第 7 行或其他地方能够看到,变量能够进行核算和组合,以生成某个设置的值。

大部分参数的称号都不言自明,但需求对 BuildRoot 稍作阐明,以将其与已创立的 BUILD 目录路区分隔。BuildRoot 代表终究的装置目录。换言之,假如 wget 终究装置在 /usr/local/bin/wget 和 /usr/local 中的其他子目录下,比方文档装置在 /usr/local/man 下,那么在 RPM 构建进程中 BuildRoot 代表 /usr/local。一旦设定了 BuildRoot,就能够运用 RPM_BUILD_ROOT 环境变量拜访其值。应该一直在 spec 文件中设置 BuildRoot 并查看该目录的内容,承认包行将装置的内容。

下面有一些技巧:

不要运用 ./configure prefix=$RPM_BUILD_ROOT。此指令构建整个包,假定文件的终究方位为构建根目录。这或许导致需求在运转时定位其已装置文件的程序发作毛病,由于当 RPM 终究装置在用户体系上时,装置的文件不再坐落构建根目录下,该目录仅仅您的构建体系上的一个暂时目录。 不要在 Source 的界说中包括途径。 主版别和次版别很重要。每次更改应用程序的代码或数据,以及构建好一个新 RPM 时,一定要添加主版别和次版别的值,以别离反映主要和非必须的更改。您会发现每次构建一个 RPM 时就添加版别编号关于将每次修正测验都分隔很有用,即使是供您自己运用。

下一节代码首先是一个 %description。您应该在这里简单明了地描绘软件。这一行将在用户运转 rpm -qi 来查询 RPM 数据库时显现。您能够阐明包的用处,描绘任何正告或额定的装备阐明等。

接下来依次是 %prep、%build 和 %install 节。每一节生成一个 shell 脚本,该脚本嵌入到 RPM 中,随后作为装置的一部分运转。%prep 预备源代码,比方解压 tarball 压缩文件。在这里,%setup -q 是一个 %prep 宏,用于主动解压 Source 中的特定 tarball 压缩文件。

您应该了解 %build 节中的指令。它们相当于用于手动装备和发动构建进程的过程。%install 节也是如此。可是,虽然手动构建的方针目录是体系上的 /usr/local 目录,但 %install 指令的方针目录为 ~/mywget/BUILD。

%files 列出应该绑缚到 RPM 中的文件,还能够设置权限和其他信息。在 %files 内,您能够运用 %defattr 宏界说默许权限、一切者和 RPM 中的文件分组。在本例中,%defattr(-,root,root) 装置根用户具有的一切文件,运用 RPM 从构建体系绑缚这些文件时找到的权限。

在 %files 中,能够在一行中包括多个文件。能够将 %doc 或 %config 添加到该行,以符号文件。%doc 通知 RPM 该文件为一个文档文件,所以假如用户运用 excludedocs 装置包,将不会装置该文件。%config 通知 RPM 这是一个装备文件。在晋级期间,RPM 将测验防止运用 RPM 打包的默许装备文件掩盖用户当心修正的装备。

请注意,假如在 %files 下列出一个目录称号,RPM 将包括该目录下的每个文件。

现在您的文件现已安排妥当,spec 文件也现已界说了,接下来就能够构建实践的 RPM 文件了。要构建它,运用恰当命名的 rpmbuild 实用程序:

版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表AG环亚娱乐立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章