概要
RVM(Ruby Version Manager) を今更ながらCentOSに入れて試してみました
すごい昔はyumでインストールしたりRubyの公式サイトから.tar.gzをダウンロードしてソースコンパイルしてインストールしていましたが、さすがに卒業しようかと思います
環境
- CentOS 6.6 64bit (Final)
- RVM 1.26.10
- AutoConf 2.69
各種インストール作業
RVMインストール
rootで実施しました
ユーザは適当に変更してください
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
\curl -sSL https://get.rvm.io | bash -s stable
echo 'export PATH=$PATH:/usr/local/rvm/bin' >> /root/.bashrc
source /root/.bashrc
- P.S 2015/04/06
curl先のURLが変更されていたのでインストールコマンドを修正しました
curlの前の円マークは必要です
コマンドの前に円マークを付けることでaliasの設定を一時的に無視することができます
rvm -v
rvm 1.26.10 (latest) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]
ひとまずバージョンが表示されればOKです
autoconf2.69のインストール
rubyをインストールするのにautoconfのバージョン2.67以上が必要になります
2.67以上をインストールしないと
configure.in:6: error: Autoconf version 2.67 or higher is required
というエラーとなりrubyをインストールする際にmakeでエラーとなります
CentOS 6.6にデフォルトでインストールされているautoconfが2.63だったのでバージョンアップします
autoconf自体の最新バージョンは2.69のようです
せっかくなので最新版をインストールたいと思います
cd /var/tmp/
wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz
tar zvxf autoconf-2.69.tar.gz
cd autoconf-2.69
./configure
make
make install
これでインストールできました
/usr/local/bin/autoconf
にインストールされました
前のautoconfのPATHが効いている場合は再ログインすると新しいバージョンのautoconfを見るようになります
Rubyのインストール
まずインストール可能なRubyのバージョンを調べます
rvm list known
インストール可能なパッケージの一覧が表示されます
Ruby以外でのパッケージのバージョン一覧も表示されるので、ここからRubyの最新版を選択してインストールします
rvm install 2.2-head
Rubyの動作に必要なほかのパッケージの依存関係を解決してインストールしてくれます
インストールが完了すればrubyを使えるようになります
インストールされているディレクトリは以下のようです
/usr/local/rvm/rubies/ruby-2.2-head/bin/ruby
rvmを使ってみる
違うバージョンのRubyをインストールして切り替えてみる
次に違うバージョンのRubyをインストールしてみます
先ほどと同じようにrvm list known
でバージョンを確認して好きなバージョンをインストールしましょう
自分は1.9系をインストールしました
rvm install 1.9.3
インストールが完了するとすでに1.9.3にバージョンが切り替わっていました
パスは以下にインストールされています
/usr/local/rvm/rubies/ruby-1.9.3-p551/bin/ruby
ではここからまた2.2.0に切り替えてみましょう
すでにインストールされているRubyのバージョンを確認するにはrvm list
を使います
rvm list
rvm rubies
=> ruby-1.9.3-p551 [ x86_64 ]
* ruby-2.2-head [ x86_64 ]
ruby-2.2.0 [ x86_64 ]
# => - current
# =* - current && default
# * - default
1.9.3と2.2.0がインストールされていることがわかると思います
現在のバージョンが1.9.3になっていることもわかると思います
ここから2.2.0に切り替えるにはrvm use
を使います
rvm use 2.2-head
これで2.2.0が使われるようになります
うまくrvm use
が出来ない場合は一旦ログアウトしてから再度試してみてください
Gemの挙動を確認する
Rubyのバージョンを切り替えた場合のgemコマンドの挙動も確認しておきます
まずそれぞれのRubyのバージョンで使われるGemのバージョンを確認します
[root@localhost tmp]$ rvm use 2.2-head
Using /usr/local/rvm/gems/ruby-2.2-head
[root@localhost tmp]$ gem -v
2.4.6
[root@localhost tmp]$ which gem
/usr/local/rvm/rubies/ruby-1.9.3-p551/bin/gem
[root@localhost tmp]$ rvm use 1.9.3
Using /usr/local/rvm/gems/ruby-1.9.3-p551
[root@localhost tmp]$ gem -v
2.4.3
[root@localhost tmp]$ which gem
/usr/local/rvm/rubies/ruby-1.9.3-p551/bin/gem
それぞれの別のgemが使われているようです
ではこの状況でgem install
を実行してみます
インストールするgemは何でもOKです
ruby 2.2.0の方でcapistranoをインストールしてみます
gem install capistrano
インストールの状況を確認すると
[root@localhost tmp]$ rvm use 2.2-head
Using /usr/local/rvm/gems/ruby-2.2-head
[root@localhost tmp]$ cap install
mkdir -p config/deploy
[skip] config/deploy.rb already exists
[skip] config/deploy/staging.rb already exists
[skip] config/deploy/production.rb already exists
mkdir -p lib/capistrano/tasks
[skip] Capfile already exists
Capified
[root@localhost tmp]$ rvm use 1.9.3
Using /usr/local/rvm/gems/ruby-1.9.3-p551
[root@localhost tmp]$ cap install
-bash: cap: コマンドが見つかりません
当たり前かもしれませんが1.9.3ではcap
コマンドが使えませんでした
つまりgemも各バージョンごとで閉じていることになります
最後に
いまさらですがRVMを試してみました
これからはクリーンな環境にRubyをインストールするときはRVMを使いたいと思います
自分は特にRubyの各種バージョンを使い分けてテストしたり動作確認したりする必要のない人間だと思うのですが、検証とかにも便利そうなのとRuby自体のインストールも簡単にできるので使い続けてみたいと思います
参考サイト
Tips
- ログインするとPATHが設定されていない
rubyやgemコマンドへのパスはデフォルトでは通っていません
どうやらrvm use
で使用するrubyを指定するとPATHに通るようでコマンドを実行できるようになります
なのでログイン時にデフォルトで使用するrubyを使うように.bashrc
あたりに記載しておくといいと思います
echo 'rvm use ruby-2.2.1' >> /root/.bashrc
P.S 20150416
すでにruby
コマンドがPATHにある場合はuseしているのでその場合はuseしないほうがいいっぽいのでそこを制御した版は以下の通り
こっちのほうがCapistranoとかと絡んだ時に相性が良さそう
(! which ruby > /dev/null 2>&1) && rvm use ruby-2.2.1 > /dev/null 2>&1
0 件のコメント:
コメントを投稿