centosのyumで入ってくるrubyは1.8系と古い
今回は1.9系を入れる必要があったのでrpmをビルドしてrubyを入れなおしました。
まずは、古いrubyをアンインストール
# yum remove ruby
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Removing:
ruby x86_64 1.8.7.352-7.el6_2 @base 1.8 M
Removing for dependencies:
munin noarch 2.0.8-1.el6 @epel 510 k
munin-node noarch 2.0.8-1.el6 @epel 1.3 M
muninまで消えちゃうのは困ります・・・。
yumだと依存関係の有るパッケージも消えちゃうのでrpmコマンドでnodepsオプションを付けてを使います。
# rpm -e --nodeps ruby
# rpm -q ruby
パッケージ ruby はインストールされていません
rubyだけ消えました。
次にRPMをビルドする為の準備です。
ビルドは一般ユーザーでやらないと良くない事がおきますので一般ユーザにsuします。
ディレクトリを一気に作り
$ mkdir -p $HOME/rpm/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
rpmmacrosで変数を定義して
$ echo "%_topdir $HOME/rpm" > $HOME/.rpmmacros
以下のディレクトリに出来る男達が作り上げたパッケージ・スペックファイルを配置
$ cd rpm/SOURCES/
$ wget http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p194.tar.gz
$cd ../SPECS/
$wget https://raw.github.com/imeyer/ruby-1.9.3-rpm/master/ruby19.spec
一箇所修正
$ vim ruby19.spec
p327のところをp194に
ビルド開始
$ rpmbuild -bb ruby19.spec
エラー: ビルド依存性の失敗:
libyaml-devel は ruby-1.9.3p194-1.el6.x86_64 に必要とされています
readline-devel は ruby-1.9.3p194-1.el6.x86_64 に必要とされています
ncurses-devel は ruby-1.9.3p194-1.el6.x86_64 に必要とされています
gdbm-devel は ruby-1.9.3p194-1.el6.x86_64 に必要とされています
tcl-devel は ruby-1.9.3p194-1.el6.x86_64 に必要とされています
openssl-devel は ruby-1.9.3p194-1.el6.x86_64 に必要とされています
db4-devel は ruby-1.9.3p194-1.el6.x86_64 に必要とされています
libffi-devel は ruby-1.9.3p194-1.el6.x86_64 に必要とされています
依存関係で起こられまくるので入れる。
# yum install libyaml-devel gdbm-devel tcl-devel db4-devel
# yum --enablerep=epel install libyaml-devel
libyaml-develはepelリポジトリを使わないと入りません。
再度ビルド
$ rpmbuild -bb ruby19.spec
待つことしばし・・・
終わるとrpmが出来てました。
$ ls -l RPMS/x86_64/ruby-*
-rw-rw-r-- 1 hoge hoge 25897764 12月 5 11:32 2012 RPMS/x86_64/ruby-1.9.3p194-1.el6.x86_64.rpm
rootに戻りインストール
# rpm -i ruby-1.9.3p194-1.el6.x86_64.rpm --test
# rpm -ivh ruby-1.9.3p194-1.el6.x86_64.rpm
# rpm -qi ruby
Name : ruby Relocations: (not relocatable)
Version : 1.9.3p194 Vendor: (none)
Release : 1.el6 Build Date: 2012年12月05日 11時31分48秒
Install Date: 2012年12月05日 11時47分25秒 Build Host: base.crimsonimpact.net
Group : Development/Languages Source RPM: ruby-1.9.3p194-1.el6.src.rpm
Size : 226955593 License: Ruby License/GPL - see COPYING
Signature : (none)
URL : http://www.ruby-lang.org/
Summary : An interpreter of object-oriented scripting language
Description :
Ruby is the interpreted scripting language for quick and easy
object-oriented programming. It has many features to process text
files and to do system management tasks (as in Perl). It is simple,
straight-forward, and extensible.
# ruby -v
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]
バージョン確認してruby1.9系がインストールできました。