工作中有如下情況需要將文件打包rpm:
1.避免重複工作,將源碼程序打包爲rpm
2.使用yum發佈項目,項目打包爲rpm
3.將自己寫好的程序打包爲rpm,提供給用戶下載
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還有其他種類包的一個非常便利的方法,值得一試。