工作中有如下情况需要将文件打包rpm:

  1. 1.避免重复工作,将源码程序打包为rpm

  2. 2.使用yum发布项目,项目打包为rpm

  3. 3.将自己写好的程序打包为rpm,提供给用户下载

  4. 4.其他


个人以为,这是目前最轻松写意的打包方式了。

首先,打包环境的配置。


安装fpm


在Fedora,centos中可以这样安装FPM:

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

在安装FPM之前。需要进行简单的配置,由于众所周知的原因导致国内访问官方的gem源太慢。这里推荐taobao的源,使用以下命令

 

gem sources -a  https://ruby.taobao.org/     #添件淘宝源
gem sources -r  https://rubygems.org/        #移除官方源

可以使用

gem sources -l   #查看源列表

最好只有一个源

然后安装FPM

gem install fpm

以上就完成了FPM的安装,可以用下面的命令查看版本

gem -v

使用fpm打包

这里使用一个简单的例子

今天拿打包一个bash文件为例子。实现用户安装rpm将会把hello.sh放到/usr/local/bin/hello.bash的例子

mkdir /tmp/rpm/usr/local/bin/  -p
touch /tmp/rpm/usr/local/bin/hello.sh

hello.sh脚本的内容如下

#!/bin/sh

echo 'hello world!'

构建好目录之后,使用fpm打包

fpm -s dir -t rpm -n my-hello -C /tmp/rpm/  -v 1.1

为了测试这个包,我先列出内容,然后安装:

rpm -qpl my-hello-1.1-1.x86_64.rpm
rpm -ivh my-hello-1.1-1.x86_64.rpm

这个shell脚本现在应该被顺利的安装到了/usr/local/bin里面了。


总结:FPM是创建RPM,Debian还有其他种类包的一个非常便利的方法,值得一试。