RPM打包之路

女主宣言

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

PS:丰富的一线技术、多元化的表现形式,尽在“360云计算”,点关注哦!

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包并且安装,可以自动处理依赖性关系。

软件包管理系统

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

# 添加淘宝Ruby仓库

          gem sources -a http://ruby.taobao.org/

# 移除原生的Ruby仓库

          gem sources --remove http://rubygems.org/

# 安装fpm

          gem install fpm

FPM目录规划如下图:

常规操作:

1.将需要打包的目录解压到到usr/local目录下 。

2.编写软件包安装完成前所要运行的脚本 、软件包安装完成之后所要运行的脚本 、软件包卸载完成之后所要运行的脚本 、软件包卸载完成之前所要运行的脚本。

3.执行fpm命令,生成RPM包。

%Fpm –s <source type> -t <target type> [options]

4.测试RPM包。

4

运用自动化工具生成RPM

 

本工具是基于fpm开发的可视化打包工具,分为wshell命令行上传文件工具和图形化打包测试工具。

自动化工具流程架构图:

常规操作:

1.按照规范构建文件目录,参考如下:

2.通过wshell上传文件夹。

    1、下载文件夹制作工具wshell。

yum install addops-auto-wshell(默认安装到usr/local/bin目录下)

    2、wshell制作压缩包。

   wshell build name-version-iteration    例:wshell build pika30-3.0.2-1、wshell build safe-nginx-1.2.9-3

    3、wshell上传压缩包。

   wshell put name-version-iteration.tar.gz     例:wshell put pika30-3.0.2-1.tar.gz、wshell put safe-nginx-1.2.9-3.tar.gz

3.通过UI填写信息点击打包。

    下面是打包UI界面:

结语

rpm自动化工具在很大程度上改变了之前延续的打包方法,使得打包更小白化,每一位没有接触过打包的程序员都可以在很短的时间内实现rpm包的定制。目前该系统支持多个用户的源码包备份、并发打包和进度查询,但是源码包的制作还不是很友好,随着用户量的增大,未来将优化源码包的制作工具,提高打包效率。

360云计算

由360云平台团队打造的技术分享公众号,内容涉及数据库、大数据、微服务、容器、AIOps、IoT等众多技术领域,通过夯实的技术积累和丰富的一线实战经验,为你带来最有料的技术分享

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值