RPM构建 - 介绍

1. RPM构建 - 介绍
2. RPM构建 - SPEC文件参数解析
3. RPM构建 - 简单实例
4. RPM构建 – 源码编译

1     RPM是什么

RPM 前是Red HatPackage Manager 的缩写,本意是Red Hat 软件包管理,顾名思义是Red Hat 贡献出来的软件包管理;现在应为RPM Package Manager的缩写。在Fedora、RedHat、Mandriva、SUSE、YellowDog等主流发行版本,以及在这些版本基础上二次开发出来的发行版采用; RPM包中除了包括程序运行时所需要的文件,也有其它的文件;一个RPM包中的应用程序,有时除了自身所带的附加文件保证其正常以外,还需要其它特定版本文件,这就是软件包的依赖关系。

 

rpm分为两大类:

1 二进制类包,包括rpm安装包(一般分为i386和x86等几种)和调式信息包等

2 源码类包,源码包和开发包应该归位此类。

 

2     RPM能做什么

RPM可以让用户直接以binary方式安装软件包,并且可替用户查询是否已经安装了有关的库文件;在用RPM删除程序时,它又会聪明地询问用户是否要删除有关的程序。如果使用RPM来升级软件,RPM会保留原先的配置文件,这样用户就不用重新配置新的软件了。RPM保留一个数据库,这个数据库中包含了所有的软件包的资料,通过这个数据库,用户可以进行软件包的查询。RPM虽然是为Linux而设计的,但是它已经移值到SunOS、Solaris、AIX、Irix等其它UNIX系统上了。RPM遵循GPL版权协议,用户可以在符合GPL协议的条件下自由使用及传播RPM。

 

RPM有五种基本的操作功能:安装、卸载、升级、查询和验证。

这五种基本功能的实现仅仅需要用rpm + 选项 + rpm包就能轻易地实现。这五个功能常用的方式如下(以mysql为例):

安装:

 rpm –ivhmysql-5.1.61-4.el6.i686.rpm

查询:

rpm –qa mysql:查询跟mysql有关的包。

删除:

rpm –emysql-5.1.61-4.el6.i686

一般的话都会先通过查询已经安装好的包,然后执行删除命令,上述命令,即可卸载掉系统安装好的rpm包。

升级:

rpm –uvhmysql-5.1.61-4.el6.i686.rpm

验证:

rpm –vmysql-5.1.61-4.el6.i686.rpm

对已经安装了的程序进行验证。

 

3     了解RPM包名

name-version-release.architecture.rpm

name —— 软件的名字;

version ——软件的版本;

release ——软件包的发行版本;

architecture ——架构;

 

4     如何创建RPM包

要构建 RPM,需要三步:

第一步:依照 rpmbuild 规范设定一个目录结构:

目录与文件介绍:

目录或文件名

描述

BUILD

用作实际编译软件的暂存空间

RPMS

包含 rpmbuild 所编译的二进制 RPM

SOURCES

存储源代码

SPECS

存放spec文件,每个RPM 对应一个spec文件

SRPMS

包含在这个过程中构建的源 RPM

.rpmmacos

Rpm构建配置文件(可选)

注:

构建RPM包,至少需要 SOURCES 中的源代码和SPEC中的一个spec文件。

第二步:将源代码和附带文件放在目录中合适的位置

将源代码(理想情况下应为一个 tar.gz压缩文件)复制到 SOURCES 目录中。如果有必要,重命名 tar压缩文件,以包含应用程序的版本号,便于与其他文件区分开。约定的命名格式为包-版本.tar.gz。

第三步:创建 spec 文件

需要详细介绍spec文件;

在SPEC目录通过以下命令初始化spec文件,然后根据具体情况进行修改。

rpmdev-newspec <软件名>.spec

 

第四步:编译 RPM

    [root@node0rpmbuild]# rpmbuild <选项> ###.spec

 

选项说明:

选项

说明

-ba

建立一个 rpm 以及一个.src.rpm

-bb

只建立二进制的 rpm

-bc

编译但不构建软件包,停止在%build 区段

-bp

只做到%prep 区段

-bi

在%install 后停止

-bl

列出 rpm 中的文件列表

-bs

只建立 src.rpm 文件

 

 

---轻轻地我走了,正如我轻轻地来---

你可能感兴趣的:(rpm)