静看光阴荏苒
不管不顾不问不说也不念

简单使用FPM打RPM包

FPM是一个用ruby开发的快速打包工具,它可以打包的种类非常多,不局限于RPM,更多介绍可以浏览项目主页:

https://github.com/jordansissel/fpm

像CentOS也有自己的打包工具,譬如:rpmbuild,但是这东西说实话设计的很反人类,操作太过于复杂,所以很多时候我会选择使用fpm代替它。

为什么要把一个应用或是程序打包成RPM?

1.快速部署,比如某个程序有二进制文件,但是想要正常工作还是要自己写配置文件和服务文件等等,这样就非常麻烦,我们可以直接打一个RPM包,以后要装这个程序的时候直接一条命令就能安装完成。

2.批量/集群部署,这种情况出现的比较多,把程序打成RPM包后就不用一台机器一台机器这样去配置了,提升工作效率。

OK,下面我拿opentracker示范一下,初步了解FPM打包的方法。

首先要在打包机器上面安装FPM,所以先安装依赖:

yum -y install ruby-devel rubygems rpm-build gcc make

然后就可以直接用GEM安装了:

gem install fpm

确保安装正常,输入下面的命令查看一下FPM的版本号:

fpm --version

接着我们要把opentracker编译安装好,这里省略。。。

根据实际应用场景,opentracker编译好是一个二进制文件,也就是一个单文件,打包相对来说简单很多,但是opentracker启动和运行什么的还是要依靠systemd,所以我们可以先写一个脚本:

vi opentracker-auto-deploy.sh

写入:

#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH

touch /usr/lib/systemd/system/opentracker.service

cat > /usr/lib/systemd/system/opentracker.service <<EOF

[Unit]
Description=opentracker server

[Service]
User=root
ExecStart=/usr/bin/opentracker/opentracker -p 1337 -P 1337
Restart=on-abort

[Install]
WantedBy=multi-user.target
EOF

systemctl enable opentracker.service
systemctl start opentracker.service

给脚本执行权限:

chmod +x opentracker-auto-deploy.sh

然后就可以使用FPM打包了:

fpm -s dir -t rpm -n opentracker -v 1.0 --post-install /root/opentracker-auto-deploy.sh --prefix /usr/bin opentracker

参数注释:

s:指定打包方式
t:打包的类型
n:定义包名
v:定义版本号
post-install:在RPM包安装完成之后执行脚本,注意这个参数不能放到FPM的最后。
prefix:被打包程序所在的路径,这个参数是用来打包单文件的,如果是大型的程序,则不能使用这个参数。

如果一切正常,打包完成之后会有类似如下图的回显:

现在我们就可以把创建的RPM包传到另外一台机器上进行安装测试:

rpm -ivh opentracker-1.0-1.x86_64.rpm

可以看到一切正常,我们制作的RPM包可以正常安装并运行opentracker:

WordPress的编辑器自动把EOF转义了。。。搞了半天文章排版都是错位的,最后只能把有EOF的这一段引用一下,将就一下吧。。。

赞(0)
未经允许不得转载:荒岛 » 简单使用FPM打RPM包
分享到: 更多 (0)

评论 3

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1

    :wink: :wink: :wink: :wink:

    Alone.6年前 (2018-11-08) Android Webkit Android Webkit Android 8.0 Android 8.0回复
  2. #2

    还行吧,也算是更新了

    YuGer6年前 (2018-11-08) Google Chrome 70.0.3538.77 Google Chrome 70.0.3538.77 Windows 10 x64 Edition Windows 10 x64 Edition回复

分享创造快乐

广告合作资源投稿