用fpm来做rpm打包

说明:此文章为腾讯云机器自动从本人csdn博客搬迁过来。是本人授权操作。

申明:无本人授权,不可转载本文。如有转载,本人保留追究其法律责任的权利。

龚浩华,QQ 29185807,月牙寂 道长

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

以前都是测试来做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 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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏琯琯博客

Yii2 学习笔记之 Gii

2524
来自专栏FreeBuf

一款用于发现SSRF、XXE、XSS漏洞的小工具

今天给大家介绍的是运行在我自己Web服务器中的一堆脚本,这些脚本可以帮助我快速检测SSRF、Blind XXS以及XXE漏洞,喜欢的朋友可以将它们部署到自己的环...

3374
来自专栏电光石火

eclipse配置tomcat运行时访问路径不要项目名称

1:双击打开tomcat 2:选择Modules,选择你要修改的项目 ? 3:点击Edit,把path修改成空或者你自己想要的路径即可! ?

3026
来自专栏运维前线

CentOS6.X/RedHat6.X yum安装jenkins

配置jenkins源 sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/red...

24010
来自专栏喵了个咪的博客空间

[喵咪BELK实战(2)] elasticsearch+kibana搭建

[喵咪BELK实战(2)] elasticsearch+kibana搭建 ? 前言 上一节我们介绍了日志系统和BELK之后就要到激动人心的安装环境了,实践出真知...

3237
来自专栏FreeBuf

如何阻止微软强制更新你的操作系统

不管Windows 7和Windows 8.1操作系统用户是否想要保留原来的操作系统,微软已经开始帮助Windows 7和Windows 8.1用户更新到Win...

1929
来自专栏云计算教程系列

如何在CentOS 7上使用Postgres,Nginx和Gunicorn设置Django

Django是一个功能强大的Web框架,可以帮助您启动Python应用程序或网站。Django包含一个简化的开发服务器,用于在本地测试您的代码,但是对于任何与生...

1353
来自专栏闵开慧

tomcat里面的文件详细说明

如何安装tomcat服务器   安装Tomcat之前要先安装JDK,可从http://java.sun.com上下载最新版本的JDK。 Tomcat可从Apac...

39510
来自专栏乐享123

Tcpdump Commands

1525
来自专栏云计算教程系列

如何使用Apache驱动Django

Django是一个功能强大的Web框架,可以帮助您快速启动Python应用程序或网站。Django包含一个简化的开发服务器,用于在本地测试您的代码。但是其也需要...

2635

扫码关注云+社区