天天看點

rpm制作工具fpm安裝

現在随着生産上伺服器的增多,我發現基于java的應用特别多,系統預設自帶的openjdk我是再制作kickstart的時候,就把它删除的,對于jdk,我們公司的規定路徑是/usr/local/jdk,公司要求是用tar包來安裝。。。。。

為了友善,我覺得把它制作成rpm包,然後放到系統鏡像的 /iso/media/Packages/目錄,同時配置好環境變量。

rpmbuild,對于不熟悉SPEC的同學來說是夠嗆的,是以來看看fpm這個工具吧,打包rpm很友善。

①yum安裝相關包

yum -y install ruby-devel ruby-rdoc  

②下載下傳rubygems

wget http://production.cf.rubygems.org/rubygems/rubygems-1.8.25.zip  

③解壓rubygems

unzip rubygems-1.8.25.zip

④安裝ruby庫

cd rubygems-1.8.25  && ruby  setup.rb

⑤安裝fpm(這步比較慢,耐心等等)  

gem install fpm

我jdk已經安裝好了,在/usr/local/jdk下

在root目錄裡直接運作下面這個指令

fpm -s dir -a all -t rpm -n "jdk" -v 1.7.0.45 /usr/local/jdk

好了,你會看到一個jdk的rpm包,大家試試吧!!!!!

補充:如果遇到這樣的報錯

Need executable 'rpmbuild' to convert dir to rpm {:level=>:error}

一般是因為需要你安裝rpmbuild

執行 yum -y install rpm-build 可以解決

如果還需要再生成的rpm包之後執行相關的初始化腳本,可以利用—post-install這個參數

比如我剛用源碼包安裝好一個2.6版本的mongodb資料庫

我打包之後,希望自己建立的啟動腳本/etc/init.d/mongod 也能一起打進去

隻要先把腳本寫到mongodb的安裝目錄,然後利用--post-install參數就可以了!

我的mongodb目錄在/opt/mongodb,編寫一個初始化腳本檔案

vi /opt/mongodb/postinstall

#################################

cat >> /etc/init.d/mongod <<EOF

#!/bin/sh

HOME="/opt/mongodb"

PATH="\$HOME/bin:\$PATH"

EXEC="\$HOME/bin/mongod"

CLIEXEC="\$HOME/bin/mongo"

CONF="\$HOME/mongodb.conf"

PIDFILE="/opt/mongodb/run/mongod.pid"

case "\$1" in

   start)

       if [ -f \$\$PIDFILE ]

       then

               echo "\$PIDFILE exists, process is already running or crashed."

       else

               echo "Starting MongoDB server..."

               \$EXEC --config \$CONF

       fi

       ;;

   stop)

       if [ ! -f \$PIDFILE ]

               echo "\$PIDFILE does not exist, process is not running."

               PID=\$(cat \$PIDFILE)

               echo "Stopping ..."

               \$CLIEXEC admin --eval "db.shutdownServer()"

               while [ -x /proc/\${PID} ]

               do

                   echo "Waiting for MongoDB to shutdown ..."

                   sleep 1

               done

               echo "MongoDB stopped."

   *)

       echo "Usage: \$0 {start|stop}" >&2

       exit 1

esac

EOF

chmod +x /etc/init.d/mongod

rm -rf /opt/mongodb/preinstall

########################################

然後執行

fpm -s dir -a all -t rpm -n "mongo" -v 2.6 --post-install /opt/mongodb/postinstall /opt/mongodb/

繼續閱讀