RubyGems をユーザ権限の環境にインストールする

rugygems をユーザ権限のディレクトリにインストールします。
わざわざ root ユーザにならなくていいし、管理が楽かなっと。


手順は以下のサイトを参考にしました。


$HOME/opt/gems に RubyGems を、
$HOME/opt/gems_repository に RubyGemsリポジトリを、インストールしています。
今回使用するユーザは hoge
Ruby のバージョンは 1.8.5 (2006-08-25) [i386-linux]
RubyGems のバージョンは 1.3.5

1. RubyGems をダウンロードする

$ wget http://rubyforge.org/frs/download.php/60718/rubygems-1.3.5.tgz

2. ダウンロードしたファイルを解凍する

$ tar zxf rubygems-1.3.5.tgz

3. インストールする

$ cd rubygems-1.3.5
$ export GEM_HOME=$HOME/opt/gems_repository
$ ruby setup.rb --prefix=$HOME/opt/gems
RubyGems 1.3.5 installed

=== 1.3.5 / 2009-07-21

Bug fixes:

* Fix use of prerelease gems.
* Gem.bin_path no longer escapes path with spaces. Bug #25935 and #26458.

Deprecation Notices:

* Bulk index update is no longer supported (the code currently remains, but not
  the tests)
* Gem::manage_gems was removed in 1.3.3.
* Time::today was removed in 1.3.3.


------------------------------------------------------------------------------

RubyGems installed the following executables:
        /home/hoge/opt/gems/bin/gem

4. インストール後の設定

きちんとインストールされていると、$HOME/opt/gems/bin に gem があるはずです。
ただ、この状態で実行してもエラーになります。
これからパスとライブラリのパスを通していきます。

$ $HOME/opt/gems/bin/gem
/home/hoge/opt/gems/bin/gem:8:in `require': no such file to load -- rubygems (LoadError)
        from /home/hoge/opt/gems/bin/gem:8

gem コマンドのあるパスとライブラリのあるパスを設定します。
環境変数に設定するだけだと、次にログインしたとときに反映されないので、
.bashrc に環境変数を設定します。

$ vi ~/.bashrc
# configuration: rubygems
export PATH=$PATH:$HOME/opt/gems/bin:$HOME/opt/gems_repository/bin
export RUBYLIB=$HOME/opt/gems/lib
export GEM_HOME=$HOME/opt/gems_repository
$ . ~/.bashrc

パスが通っていれば、以下のコマンドを実行すると RubyGems のバージョンが表示されます。

$ gem -v
1.3.5

ためしに RSpec をインストールしてみる

RSpec をインストールして、実際にライブラリとコマンドが使えるかどうかを確認しています。

$ gem install rspec
ライブラリが使えるかを確認

以下のようなスクリプトを書いて、実行してみます。
ライブラリが require されて、エラーがでなければ OK です。

#!/usr/bin/ruby

require "rubygems"
require "spec"

... 省略 ...
コマンドが実行できるかを確認

RSpec のバージョン情報を表示してみます。

$ spec -v
rspec 1.2.9

終了

ユーザ環境の RubyGems ができました。
おしまい。