2011年2月15日火曜日

CentOS 5.5 に Ruby 1.8.7をインストール(rpm作成編)

CentOS 5.5 に Ruby 1.8.7をインストールします。今回はrubyのrpmパッケージを作成します。

前回既に導入されているruby1.8.5関連のパッケージは削除しました。

参照させていただいたサイトはこちら

RPMforgeリポジトリ導入(RPMforge)
http://centossrv.com/rpmforge.shtml 
CentOS 5.2 上で Ruby の環境を整える
http://moimoitei.blogspot.com/2008/08/centos-52-ruby.html
CentOS本家のサイト
http://wiki.centos.org/AdditionalResources/Repositories/RPMForge?action=show&redirect=Repositories%2FRPMForge#head-5aabf02717d5b6b12d47edbc5811404998926a1b

では始めましょう。

yum-prioritiesプラグイン導入

# yum -y install yum-priorities
# vi /etc/yum.repos.d/CentOS-Base.repo (編集)
=========================================
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
priority=1

#released updates
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
priority=1

#packages used/produced in the build but not released
[addons]
name=CentOS-$releasever - Addons
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=addons
#baseurl=http://mirror.centos.org/centos/$releasever/addons/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
priority=1
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
priority=1
=========================================
(青字箇所 追加)

RPMForge導入

RPMforgeのGPGキーインストール
# rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt

↓↓こちらの方法では何故かうまくいきませんでした。一旦ファイルをダウンロードしてから実行してもインストールできませんでした。
# wget http://dag.wiees.com/rpm/packages/RPM-GPG-KEY.dag.txt 
# rpm --import RPM-GPG-KEY.dag.txt

RPMforge packageのダウンロード
# wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.i386.rpm

一応ベリファイ
# rpm -K rpmforge-release-0.5.2-2.el5.rf.i386.rpm
rpmforge-release-0.5.2-2.el5.rf.i386.rpm: (sha1) dsa sha1 md5 gpg OK
RPMforgeのインストール
# rpm -i rpmforge-release-0.5.2-2.el5.rf.i386.rpm

checkinstall のインストール

# yum --enablerepo=rpmforge install checkinstall
rpmbuildのインストール(後でない!と怒られた)
# yum install rpm-build 
 
ruby ダウンロード  $ make dir ~/src
 $ cd ~/src
 $ make dir ruby1.8.7
 $ cd ruby1.8.7
 $ wget wget http://core.ring.gr.jp/archives/lang/ruby/1.8/ruby-1.8.7-p330.tar.gz
 ※ ftpが利用できなかったので、ミラーサイトからダウンロード
インストール
 $ tar -xf ruby-1.8.7-p330.tar.gz
 $ cd ruby-1.8.7-p330
 $ ./configure --prefix=/usr
 $ make

checkinstall を実行しようとした際、
  /usr/sbin
がpathに設定されていないので・・・見つけるのに時間がかかった・・・# /usr/sbin/checkinstall --fstrans=no
# rpm -ivh /usr/src/redhat/RPMS/i386/ruby-1.8.7-p330-1.i386.rpm
ところが、今回は一度ruby1.8.7をインストールしてしまっているせいか、依存性の欠如なるエラーが発生。

# rpm -ivh /usr/src/redhat/RPMS/i386/ruby-1.8.7-p330-1.i386.rpm 
エラー: 依存性の欠如:
        /usr/bin/ruby は ruby-1.8.7-p330-1.i386 に必要とされています

# rpm -ih --nodeps /usr/src/redhat/RPMS/i386/ruby-1.8.7-p330-1.i386.rpm
########################################### [100%]
########################################### [100%]
 

以上でインストール完了。
いつもの
# ruby -v
ruby 1.8.7 (2010-12-23 patchlevel 330) [i686-linux]
でバージョンを確認します。

ついでに  RubyGemsのインストール
$ mkdir ~/src/rubygems
 $ wget http://rubyforge.org/frs/download.php/74234/rubygems-1.5.2.tgz
 # /usr/sbin/checkinstall -R "ruby setup.rb"
 # rpm -ih /usr/src/redhat/RPMS/i386/rubygems-1.5.2-1.i386.rpm
########################################### [100%]
########################################### [100%]

わたしの場合、何故か error.rb がrpmパッケージでインストールされず、前回rubyをインストールした時のように、やり直ししました。
# make install
すると以下のように、ライブラリが増え、RubyGemsが無事インストールできました。
発生したエラーは loaderror で yaml/error が見付からないというものでした。

# ls /usr/lib/ruby/1.8/yaml
baseemitter.rb  dbm.rb       loader.rb     stream.rb    tag.rb       ypath.rb
basenode.rb     encoding.rb  rubytypes.rb  stringio.rb  types.rb
constants.rb    error.rb     store.rb      syck.rb      yamlnode.rb 

これでひとまずRubyの開発環境が整いました。

0 件のコメント:

コメントを投稿