博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用fpm来做rpm打包
阅读量:4031 次
发布时间:2019-05-24

本文共 2452 字,大约阅读时间需要 8 分钟。

本文链接地址:

本文qq空间博客链接地址:


以前都是测试来做rpm打包的。现在自己写的程序需要自己做打包。

用rpmbuild做了打包,但总感觉很不方便。

于是便找到了fpm工具。下面总结下fpm工具的使用

1、安装

首次安装

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

2、FPM常用参数:

-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包

3、打包

以我自己的一个小工具为例子

3.1、在当前目录下创建临时目录

tmp├── etc│   └── supervisor│       └── conf.d│           └── home    └── gonghh        └── log

3.2、编译项目

go build hot

3.3、拷贝运行项目到临时目录

tmp├── etc│   └── supervisor│       └── conf.d│           └── hot.supervisor.conf└── home    └── gonghh        ├── hot         ├── hot.conf        ├── hot.supervisor.conf        └── log

3.4、打包

fpm -s dir -t rpm -n hot -v 1.0.2 -C tmp -f

便生成了hot-1.0.2-1.x86_64.rpm

3.5、查看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

3.6、安装

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 CSTInstall Date: Tue 29 Nov 2016 06:34:38 PM CST      Build Host: *********Group       : default                       Source RPM: hot-1.0.2-1.src.rpmSize        : 1507                             License: unknownSignature   : (none)Packager    : ******************URL         : ****************Summary     : no description givenDescription :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日
如果你觉得本文对你有帮助,可以转到你的朋友圈,让更多人一起学习。

第一时间获取文章,可以关注本人公众号:月牙寂道长,也可以扫码关注

在这里插入图片描述

转载地址:http://kpebi.baihongyu.com/

你可能感兴趣的文章
coursesa课程 Python 3 programming course_2_assessment_8 sorted练习题
查看>>
visca接口转RS-232C接口线序
查看>>
在unity中建立最小的shader(Minimal Shader)
查看>>
1.3 Debugging of Shaders (调试着色器)
查看>>
关于phpcms中模块_tag.class.php中的pc_tag()方法的含义
查看>>
vsftp 配置具有匿名登录也有系统用户登录,系统用户有管理权限,匿名只有下载权限。
查看>>
linux安装usb wifi接收器
查看>>
终于搞定CString和string之间转换的问题了
查看>>
用防火墙自动拦截攻击IP
查看>>
补充自动屏蔽攻击ip
查看>>
谷歌走了
查看>>
多线程使用随机函数需要注意的一点
查看>>
getpeername,getsockname
查看>>
让我做你的下一行Code
查看>>
浅析:setsockopt()改善程序的健壮性
查看>>
关于对象赋值及返回临时对象过程中的构造与析构
查看>>
VS 2005 CRT函数的安全性增强版本
查看>>
SQL 多表联合查询
查看>>
Visual Studio 2010:C++0x新特性
查看>>
drwtsn32.exe和adplus.vbs进行dump文件抓取
查看>>