RPM构建 - 介绍
来源:互联网 发布:淘宝买药怎么看物流 编辑:程序博客网 时间:2024/05/22 10:50
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构建 - 介绍
- RPM介绍
- rpm介绍
- RPM包的构建
- rpm包构建方法
- RPM构建 - 简单实例
- Ceph rpm构建
- RPM构建 – 源码编译
- RPM使用介绍
- rpm 操作介绍
- linux rpm介绍
- RPM 简单介绍
- RPM包相关介绍
- Linux—RPM介绍
- RPM软件管理程序介绍
- rpm常用命令及rpm参数介绍
- rpm常用命令及rpm参数介绍
- rpm常用命令及rpm参数介绍
- sqoop原理
- MariaDB-10.1 Galera Cluster on CentOS 7
- Android 解决listview+swipmenulisview 侧滑冲突(亲测有效)
- 锁(C++)
- 洛谷 P2532 [AHOI2012] 树屋阶梯
- RPM构建 - 介绍
- Linux 静态库 和 动态库的使用
- DPDK入门-DPDK绑定cpu失败
- jvm支持的最大线程数
- 好节日
- 洛谷 P2616 [USACO10JAN]购买饲料II Buying Feed, II
- 关于函数命名的只读性
- RPM构建 - SPEC文件参数解析
- git查看文件的提交记录