RPM快速打包--FPM

Linux目前安装软件的方式有三种:

1.源码安装,优点是可以自定义安装目录和一些配置文件,但是需要事先调整编译参数,比较麻烦。

2.Yum安装软件,优点是全自动安装,不需要为依赖的问题发愁,但是他的自主性太差,软件的功能和存放的位置都是已经放置好的,不容易改变。

3.Rpm安装,这种相对上面来说是比较方便的。既可以有自主性,又可以实现全自动安装。

一.rpm包的制作:

以前都是用rpmbuild来制作的,个人觉得是比较麻烦的,所以下面我不会介绍,而我要介绍的是一个比较快速制作rpm包的工具fpm(其实是一种格式转换工具)

1.支持的源类型包

 Dir 将目录打包成所需要的类型,可以用于源码编译安装的软件包

 Rpm 对rpm进行转换

 Gem 对rubygem包进行转换

 Python 将python模块打包成相应的类型

 

2.支持的目标类型包

 Rpm 转换为rpm包

 Deb 转换为deb包

 Solaris 转换为solaris包

 Puppet 转换为puppet模块

 

3.Fpm安装

fpm是ruby写的,因此系统环境需要ruby,且ruby版本大于1.8.5

#安装ruby模块

yum -y install ruby rubygems ruby-devel

#查看当前rubygem仓库

gem sources list

#因为国外的源比较慢所以我们要添加国内的源,移除原来的源

gem sources --add https://ruby.taobao.org/

或者

gem sources -a http://mirrors.aliyun.com/rubygems/

#移除原有的源

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

#安装fpm,gem从rubygem仓库安装软件类似于yum安装。

Gem install json -v 1.8.3

Gem install fpm -v 1.3.3

#上面的两步主要是针对于centos6,如果是centos7的话我们直接就执行    gem install fpm

 

4.Fpm参数

详情请参考fpm --help

常见参数:

-s 指定源类型

-t 指定目标类型,就是你想要制作什么包

-n 指定包的名字

-v 指定包的版本号

-C 指定打包的相对路径

-d 指定依赖于哪些包

-f 第二次打包时候目录下如果有同名的安装包存在则直接覆盖

-p 输出安装包的目录,如果不想放在当前目录下则必须指定

--post-install 软件包安装完成后需要运行的脚本等于--after-install

--pre-install 软件包完成之前所要运行的脚本等于--before-install

--post-uninstall 卸载软件包之后所要运行的脚本--after-remove

--pre-uninstall 卸载软件包之前所要运行的脚本--before-remove

实例:

Example:我这里有一个monitor的目录,是我一些脚本的合集,我要将他转换成rpm包,到时候通过rpm安装。

1)执行:fpm -s dir -t rpm -n monitor -v 1.0 /root/monitor-base-2/

生成一个monitor-1.0-1.x86_64.rpm的rpm包

2)rpm -ivh monitor-1.0-1.x86_64.rpm

在当前目录安装完成。

或者:yum localinstall monitor-1.0-1.x86_64.rpm也是可以搞定的。


#rpm -qpl可以查看包里面的内容,这个还是比较好用的

rpm -qpl  monitor-1.0-1.x86_64.rpm

注意:用rpm -ivh 安装会存在依赖性问题,然后就会报错。所以必须先安装依赖文件然后再运行rpm -ivh。但是如果用yum  localinstall 则会很爽。因为他是先安装依赖文件然后在安装包的,我比较建议这个。
————————————————
版权声明:本文为CSDN博主「XiaoXiao__cc」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xiaoxiao__cc/article/details/80999862

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值