RPM包制作(一)-来自红帽原厂课件

RPM包设计/架构

每个RPM包由三个基本组件组成:

元数据metadata - 关于包的数据:包的名称,版本,发布,构建器,日期,依赖    ,等等。

文件files - 包提供的文件的存档(包括文件属性)

脚本scripts - 这些脚本在包被安装、更新和/或删除时执行

在构建RPM包时,需要指定关于包的元数据,需要提供归档文件,需要嵌入安装或卸载包时应该运行的脚本。

以下rpm查询对于研究rpm包的结构是很有用的:

rpm -qd - 列出文档文件(%doc)

rpm -qc - list配置文件(%config)

rpm -q --scripts – 列出 %pre, %post, %preun, %poststun脚本。

对于未安装的软件包,使用rpm -qp,多个-p参数

要构建RPM包,您需要一个构建规范文件或规范文件。spec文件只是一个文本文件,其中包含关于如何构建可安装的RPM包的信息。你可以把它大致分为五个部分:

介绍- introduction或前言preamble,列出包的元数据(名称,版本,许可证等)

构建-build指令,它指定了如何编译和准备软件

scriptlets,它指定在安装、卸载或升级时运行的命令

清单- manifest,一个要打包的文件列表,以及它们在包安装时的权限

更新日志- changelog,跟踪对这个RPM包的更改

SPEC文件指令和节

重要的序言指令

name - 包的名称,通常由开发人员选择。

version - 包的版本(通常为数字),通常由开发人员选择。

release - 由打包者选择的包的发布版本。如果您仍然使用相同的软件版本,那么每次您发布新的软件包时,这种情况都会增加。

Group - 包所属的组。请参阅/usr/share/doc/rpm-*/GROUPS查看默认的组集,或者使用你自己的组。这个字段是半废弃的,与yum包组无关。

URL - 开源软件的网页

License - 软件使用的许可证的“短许可证标识符”。

Summary - 对软件的简短的单字描述。(不要超过50个字符。)

Source - 要用作源代码的文件。如果有多个文件用作源文件,则添加一个数字。例如: Source0,Source1、Source2等等。

BuildArch - 构建包时使用的架构。默认为系统架构。一个常见的参数是noarch,这意味着包是独立于体系结构的(通常这些包由脚本或数据文件组成)。

Requires - 此包所依赖的明确要求列表。这可能是文件或其他包的列表,rpmbuild通常可以自动检测大多数库的依赖关系,但在某些情况下,您可能需要列出一个显式的依赖关系。

build requirements - 构建这个包所需的需求列表。这是一个与require语法相似的列表,例如BuildRequires: /usr/bin/gcc, gimp-libs >= 2.6.11。

Spec File Sections

%description部分 - 对软件的详细描述。每行不能超过80个字符,但是可以有多行。

%prep 部分 - 解压和解压缩BUILD目录下的文件。为构建build阶段做好准备。

%build部分 - 构建软件(可选)。如果需要,编译软件。

%install部分-将文件安装在正确的位置。make命令通常使用DESTDIR= R P M B U I L D R O O T 。如果您复制或安装文件,目标文件前通常会有 RPM_BUILD_ROOT。如果您复制或安装文件,目标文件前通常会有 RPMBUILDROOT。如果您复制或安装文件,目标文件前通常会有RPM_BUILD_ROOT,这样软件就会被放置在chroot环境中,为打包做好准备。

%clean部分 - Post建立清理。本节通常包括:rm -rf $RPM_BUILD_ROOT清理chroot环境。

%files部分 - 这里应该包括所有的文件。您可以将rpm -qc和rpm -qd分别显示的文件标记为%config或%doc。

%changelog部分 - 对软件所做的更改的日志。如果使用,包括错误跟踪号码。这些信息可以通过rpm -q --changelog显示。

构建RPM包的五个步骤

构建RPM包的五个步骤:

  1. Tarball

获取包含源的tar文件。默认的rpmbuild假定存档的顶层目录被命名为%{name}-%{version}。在~/ rpmbuild/SOURCES/目录中放置该文件

  1. Spec file

创建spec文件并填充所需的字段。将该文件放在/rpmbuild/SPECS/目录中

  1. rpmbuild

安装rpm-build包,使用rpmbuild命令来构建包(s)。例如,

[user@host BUILD]$ rpmbuild-ba …/SPECS/demo.spec

  1. Sign

使用GPG密钥对RPM包进行签名。构建包之后,使用rpm --resign demo-1.0-1.x86_64.rpm添加(或更改)GPG签名

  1. Test

通过在开发系统上安装它来测试包,以确保正确的负载、脚本等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

太极淘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值