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" ... 省略 ...
終了
ユーザ環境の RubyGems ができました。
おしまい。