みむらです。
作業中に見つけたことで、たぶん今後も使いそうな気がするのでメモ。
SPEC ファイルがあれば rpmbuild で一発なのですが、
そんなうれしいことはあまりないので、どうしようかと。
fpm コマンドを使うと良い感じに rpm にまとめてくれるので、
これを使ってみましょう、というそんな話。
1.fpm の準備
yum install gcc ruby ruby-devel ruby-libs rubygems rpm-build gem install fpm
rubygem で提供されているのでそれ経由で入れる。
2.普通にコンパイル
今回は ruby で試しました。
configure の時は、
prefix を “/usr” に向けておくと良い感じです。
(別に /usr/local/ でも大丈夫だとは思いますが、気分的に。)
あとは make に “-j” を付けて CPU を良い感じに唸らせて。
(他にこのプログラムで使うパッケージがあれば入れておく。)
wget http://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.2.tar.gz tar zxvf ruby-2.1.2.tar.gz cd ruby-2.1.2 ./configure --prefix=/usr make -j8
3. rpm を作る
make が完了したら、
出力用のフォルダを作ってそこに出力します。
私の場合はホームディレクトリ以下に ruby というディレクトリを作成しました。
mkdir ~/ruby
でもって、コンパイル結果をそのディレクトリに向けて出力します。
make install DESTDIR=~/ruby
インストールが完了すると、指定したディレクトリ内にファイルが作られます。
[mimura1133@localhost ruby]# find ~/ruby /home/mimura1133/ruby /home/mimura1133/ruby/usr /home/mimura1133/ruby/usr/lib /home/mimura1133/ruby/usr/lib/pkgconfig /home/mimura1133/ruby/usr/lib/pkgconfig/ruby-2.1.pc /home/mimura1133/ruby/usr/lib/libruby-static.a /home/mimura1133/ruby/usr/lib/ruby /home/mimura1133/ruby/usr/lib/ruby/site_ruby /home/mimura1133/ruby/usr/lib/ruby/site_ruby/2.1.0 /home/mimura1133/ruby/usr/lib/ruby/site_ruby/2.1.0/x86_64-linux /home/mimura1133/ruby/usr/lib/ruby/vendor_ruby /home/mimura1133/ruby/usr/lib/ruby/vendor_ruby/2.1.0 /home/mimura1133/ruby/usr/lib/ruby/vendor_ruby/2.1.0/x86_64-linux
次にホームディレクトリに移動して、 fpm コマンドを使って rpm パッケージを作ります。
なお、 fpm コマンドについてのヘルプは下記URL にあります。
https://github.com/jordansissel/fpm/wiki・・deb パッケージを作ったり、deb から rpm にしたりとかも出来るっぽいですね。
何も気にせずさくっと作るのであれば、
fpm -s dir -t rpm -n (名前) -v (バージョン) -C (出力したディレクトリ) -p (RPMファイル名) usr/
というような、こんな感じ。
なので先ほどまでやっていた ruby の場合は、
fpm -s dir -t rpm -n ruby -v 2.1.2 -C /root/ruby -p ruby-2.1.2.rpm usr/
こんな感じ。
凝る場合は “-d” で依存関係を指定できるので
-d “openssl-devel (> 1.0.1)”
とか。こういう感じで。
4.出来た RPM をインストールする。
あとは、
rpm -ivh ruby-2.1.2.rpm
とか叩いてインストール。
削除の場合は
rpm -e ruby-2.1.2
としてもいいし、
yum remove ruby
とかやっても消えます。