本文链接地址:http://blog.csdn.net/screscent/article/details/53409554
本文qq空间博客链接地址:http://user.qzone.qq.com/29185807/blog/1480415468
以前都是测试来做rpm打包的。现在自己写的程序需要自己做打包。
用rpmbuild做了打包,但总感觉很不方便。
于是便找到了fpm工具。下面总结下fpm工具的使用
首次安装
yum -y install ruby rubygems ruby-devel
添加淘宝sources
gem sources -a https://ruby.taobao.org/
移除国外sources
gem sources--remove http://rubygems.org/
安装fpm
gem install fpm -v 1.4.0
-s:指定源类型
-t:指定目标类型,即想要制作为什么包
-n:指定包的名字
-v:指定包的版本号
-C:指定打包的相对路径
-d:指定依赖于哪些包
-f:第二次包时目录下如果有同名安装包存在,则覆盖它
-p:输出的安装包的目录,不想放在当前目录下就需要指定
–post-install:软件包安装完成之后所要运行的脚本;同–offer-install
–pre-install:软件包安装完成之前所要运行的脚本;同–before-install
–post-uninstall:软件包卸载完成之后所要运行的脚本;同–offer-remove
–pre-uninstall:软件包卸载完成之前所要运行的脚本;同—before-remove
支持的源类型包:
dir: 将目录打包成所需要的类型,可以用于源码编译安装的软件包
rpm: 对rpm进行转换
gem: 对rubygem包进行转换
python: 将Python模块打包成相应的类型
支持的目标类型包:
rpm: 转换为rpm包
deb: 转换为deb包
solaris: 转换为solaris包
puppet: 转换为puppet包
以我自己的一个小工具为例子
tmp
├── etc
│ └── supervisor
│ └── conf.d
│
└── home
└── gonghh
└── log
go build hot
tmp
├── etc
│ └── supervisor
│ └── conf.d
│ └── hot.supervisor.conf
└── home
└── gonghh
├── hot
├── hot.conf
├── hot.supervisor.conf
└── log
fpm -s dir -t rpm -n hot -v 1.0.2 -C tmp -f
便生成了hot-1.0.2-1.x86_64.rpm
rpm -qpl hot-1.0.2-1.x86_64.rpm
/etc/supervisor/conf.d/hot.supervisor.conf
/home/gonghh/hot.conf
/home/gonghh/hot
/home/gonghh/hot.supervisor.conf
/home/gonghh/log
rpm -i hot-1.0.2-1.x86_64.rpm
查看安装信息
rpm -qi hot
Name : hot Relocations: /
Version : 1.0.2 Vendor: ***********
Release : 1 Build Date: Tue 29 Nov 2016 06:26:58 PM CST
Install Date: Tue 29 Nov 2016 06:34:38 PM CST Build Host: *********
Group : default Source RPM: hot-1.0.2-1.src.rpm
Size : 1507 License: unknown
Signature : (none)
Packager : ******************
URL : ****************
Summary : no description given
Description :
no description given
查看安装目录
/home/gonghh/
├── hot.conf
├── hot
├── hot.supervisor.conf
└── log
/etc/supervisor/conf.d/
├── hot.supervisor.conf
##3.7、卸载rpm
rpm -e hot
查看卸载后的安装目录
/home/gonghh/
0 directories, 0 files
ll /etc/supervisor/conf.d/hot.supervisor.conf
ls: cannot access /etc/supervisor/conf.d/hot.supervisor.conf: No such file or directory
龚浩华
qq 29185807 月牙寂
2016年11月29日
如果你觉得本文对你有帮助,可以转到你的朋友圈,让更多人一起学习。
第一时间获取文章,可以关注本人公众号:月牙寂道长,也可以扫码关注