RPM打包之路

今天小编为大家分享一篇RPM包打包的文章,文章从RPM概念说起,针对RPM包的打包,讲述了市面上两种主流的RPM包打包方式和一种自主研发的自动化打包工具,希望能对大家有所帮助 。

RPM打包之路


1
什么是RPM
RPM早期被称为RedHat Package Manager,但由于目前RPM非常流行,且已经成为Linux工业标准 。所以RPM现在又被称为RPM is Package Manager 。RPM管理支持事务机制,增强了程序安装卸载的管理 。RPM的功能:打包、安装、查询、升级、卸载、校验、数据库管理 。YUM被称为 Yellow dog Updater, Modified,是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器 。YUM客户端基于RPM包进行管理,可以通过HTTP服务器下载、FTP服务器下载、本地软件池的等方式获得软件包,可以从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系 。
软件包管理系统
RPM打包之路


2
运用rpmbuild生成RPM
安装rpm-build软件包:
yum install rpm-build -y
rpmbuild目录:
当执行rpmbuild命令失败之后,会在当前目录下生成一个rpmbuild目录,该目录中包含下面的6个目录 。
BUILD:源代码解压以后放的位置,只需提供BUILD目录,具体里面放什么,不用我们管,所以真正的制作车间是BUILD目录 。
BUILDROOT:假根,使用install临时安装到这个目录,把这个目录当作根来用的,所以在这个目录下的目录文件,才是真正的目录文件 。当打包完成后,在清理阶段,这个目录将被删除 。
RPMS:制作完成后的rpm包存放目录,为特定平台指定子目录(i386,i686,ppc) 。
SOURCES:收集的源文件,源材料,补丁文件等存放位置 。
SPECS:存放spec文件,作为制作rpm包的纲领文件,文件以.spec结尾 。SRPMS:src格式的rpm包位置,既然是src格式的包,就没有平台的概念了 。
常规操作:
1.下载源码tar包到SOURCE目录 。2.编写SPEC文件 。3.使用rpmbuild生成RPM包 。3
运用fpm生成RPM
FPM的是由jordansissel基于ruby语言开发的一种方便打包的工具 。简单说就是将一种类型的包转换成另一种类型的包 。
安装fpm软件包:
#安装ruby
yum -y install ruby rubygems ruby-devel
【RPM打包之路】# 添加淘宝Ruby仓库
gem sources -a http://ruby.taobao.org/
# 移除原生的Ruby仓库
gem sources –remove http://rubygems.org/
# 安装fpm
gem install fpm
FPM目录规划如下图:
RPM打包之路


常规操作:1.将需要打包的目录解压到到usr/local目录下。2.编写软件包安装完成前所要运行的脚本 、软件包安装完成之后所要运行的脚本 、软件包卸载完成之后所要运行的脚本 、软件包卸载完成之前所要运行的脚本 。3.执行fpm命令,生成RPM包 。%Fpm –s <source type> -t <target type> [options]
4.测试RPM包 。4
运用自动化工具生成RPM
本工具是基于fpm开发的可视化打包工具,分为wshell命令行上传文件工具和图形化打包测试工具 。
自动化工具流程架构图:
RPM打包之路


常规操作:
1.按照规范构建文件目录,参考如下:
RPM打包之路


2.通过wshell上传文件夹 。

    推荐阅读