In: Ruby / Rails| technology
21 1月 2012MacBookAirを買って、最初からRubyがインストールされていたのは、非常に喜ばしいことだったのですけれども。
地味ーに最新のバージョンではないのですよね(買ったのもずいぶん前のことだったということもありますが)。
以前、Homebrewを取り入れたときにデフォルトでインストールされているものよりもバージョンが上のものがとれてきたので、これで解決とも思っていましたが、RVMという、もっと便利な手法があるとのこと。試してみることとしました。
“Ruby enVironment (Version) Manager”の略称で、複数のバージョンのRubyやgemsを共存させることができるもののようです。
gemsも替えられるので、Railsのバージョンも複数持つなんてこともできます。どのRuby、どのgemsを使うかをコマンドひとつで切り替えられるのが素敵ですね。
ということで、早速インストール。本家サイトを参考に以下のコマンドを入れます。
$ bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer )
今回は安定版を入れることにしました。
Downloading RVM from wayneeseguin branch stable
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 799k 100 799k 0 0 99066 0 0:00:08 0:00:08 --:--:-- 172k
Installing RVM to /Users/katawara/.rvm/
Adding rvm loading line to '/Users/katawara/.bash_profile'.
# RVM: Shell scripts enabling management of multiple ruby environments.
# RTFM: https://rvm.beginrescueend.com/
# HELP: http://webchat.freenode.net/?channels=rvm (#rvm on irc.freenode.net)
# Screencast: http://screencasts.org/episodes/how-to-use-rvm
# In case of any issues read output of 'rvm requirements' and/or 'rvm notes'
Installation of RVM in /Users/katawara/.rvm/ is almost complete:
* To start using RVM you need to run `source /Users/katawara/.bash_profile`
in all your open shell windows, in rare cases you need to reopen all shell windows.
* Optionally you can run `rvm tools rvm-env ruby bash` which will generate
shebang wrappers for easier selecting ruby in scripts.
# ,
#
# Thank you for using RVM!
# I sincerely hope that RVM helps to make your life easier and more enjoyable!!!
#
# ~Wayne
シングルユーザでのインストールなので、/Users/username/.rvmにディレクトリが作られます。
$ls .rvm/ LICENCE bin/ examples/ hooks/ man/ scripts/ wrappers/ README config/ gems/ installed.at patches/ src/ VERSION contrib/ gemsets/ lib/ patchsets/ tmp/ archives/ environments/ help/ log/ rubies/ user/
.bash_profileにもこんな感じで書きこまれます。
$cat .bash_profile ...(略)... [[ -s "/Users/katawara/.rvm/scripts/rvm" ]] && source "/Users/katawara/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*
インストールの確認は、”source .bash_profile”で.bash_profileを更新してから、以下のコマンドを打つときちんと入っているかが確かめられます。
$ source .bash_profile $ type rvm | head -n1 rvm is a function
これが出ればインストール完了。
まずは、以下のコマンドでインストールできるものを確認します。
$ rvm list known # MRI Rubies 1.8.6[-p420] 1.8.6-head 1.8.7[-p357] 1.8.7-head 1.9.1-p378 1.9.1[-p431] 1.9.1-head 1.9.2-p180 1.9.2[-p290] 1.9.2-head 1.9.3-preview1 1.9.3-rc1 1.9.3[-p0] 1.9.3-head ruby-head # GoRuby goruby # JRuby jruby-1.2.0 jruby-1.3.1 jruby-1.4.0 jruby-1.6.1 jruby-1.6.2 jruby-1.6.3 jruby-1.6.4 jruby-1.6.5 jruby[-1.6.5.1] jruby-head # Rubinius rbx-1.0.1 rbx-1.1.1 rbx-1.2.3 rbx-1.2.4 rbx[-head] rbx-2.0.0pre # Ruby Enterprise Edition ree-1.8.6 ree[-1.8.7][-2011.12] ree-1.8.6-head ree-1.8.7-head # Kiji kiji # MagLev maglev[-head] maglev-1.0.0 # Mac OS X Snow Leopard Or Newer macruby[-0.10] macruby-nightly macruby-head # IronRuby -- Not implemented yet. ironruby-0.9.3 ironruby-1.0-rc2 ironruby-head
普通のRubyだけでなく、MacRubyとかJRuby、IronRubyまであるんですね。
とりあえず、新しいものがほしいので、1.9.2を入れてみよう。
$ rvm install 1.9.2
Fetching yaml-0.1.4.tar.gz to /Users/katawara/.rvm/archives
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 460k 100 460k 0 0 100k 0 0:00:04 0:00:04 --:--:-- 110k
Extracting yaml-0.1.4.tar.gz to /Users/katawara/.rvm/src
Configuring yaml in /Users/katawara/.rvm/src/yaml-0.1.4.
Compiling yaml in /Users/katawara/.rvm/src/yaml-0.1.4.
Installing yaml to /Users/katawara/.rvm/usr
Installing Ruby from source to: /Users/katawara/.rvm/rubies/ruby-1.9.2-p290, this may take a while depending on your cpu(s)...
ruby-1.9.2-p290 - #fetching
ruby-1.9.2-p290 - #downloading ruby-1.9.2-p290, this may take a while depending on your connection...
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 8604k 100 8604k 0 0 624k 0 0:00:13 0:00:13 --:--:-- 321k
ruby-1.9.2-p290 - #extracting ruby-1.9.2-p290 to /Users/katawara/.rvm/src/ruby-1.9.2-p290
ruby-1.9.2-p290 - #extracted to /Users/katawara/.rvm/src/ruby-1.9.2-p290
ruby-1.9.2-p290 - #configuring
ruby-1.9.2-p290 - #compiling
ruby-1.9.2-p290 - #installing
Retrieving rubygems-1.8.15
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 245k 100 245k 0 0 182k 0 0:00:01 0:00:01 --:--:-- 565k
Extracting rubygems-1.8.15 ...
Removing old Rubygems files...
Installing rubygems-1.8.15 for ruby-1.9.2-p290 ...
Installation of rubygems completed successfully.
ruby-1.9.2-p290 - adjusting #shebangs for (gem irb erb ri rdoc testrb rake).
ruby-1.9.2-p290 - #importing default gemsets (/Users/katawara/.rvm/gemsets/)
Install of ruby-1.9.2-p290 - #complete
これでRubyとgemsのインストール完了。今rvm上で管理されているRubyのバージョンを見たいときは、以下のコマンド。
$ rvm list rvm rubies ruby-1.9.2-p290 [ x86_64 ] # Default ruby not set. Try 'rvm alias create default '. # => - current # =* - current && default # * - default
複数バージョン入ると、rvm rubiesの中身が増えていく形ですね。
インストールされたものは、.rvm/rubies/と.rvm/gemsの中に入っていきます。
$ ls .rvm/rubies/ ruby-1.9.2-p290 $ ls .rvm/gems cache ruby-1.9.2-p290 ruby-1.9.2-p290@global
Rubyのインストールが終わったら、実際に入れたものを使うよう指定してみます。
“rvm use [VERSION]“のコマンドで切り替えることができます。
$ which ruby /usr/local/bin/ruby $ which gem /usr/local/bin/gem $ rvm use 1.9.2 Using /Users/katawara/.rvm/gems/ruby-1.9.2-p290 $ which gem /Users/katawara/.rvm/rubies/ruby-1.9.2-p290/bin/gem $ which ruby /Users/katawara/.rvm/rubies/ruby-1.9.2-p290/bin/ruby
見事に切り替わりましたね。
もともと入れてたものをやっぱり使いたくなったときは、
$ rvm use system
とすればOK。
また、常にデフォルトで使いたいものを指定したい場合は、
$ rvm --default use 1.9.2
として、デフォルトを解除したい場合は、
$ rvm reset
とすればよいです。
gemもコマンド一個で切り替えたりできるけど、それはまた別の機会にでも。参考にした記事がそこら辺も触れているので、そちらを見てもらってもいいかも。
仕事の場面だったら、プロジェクトごとに使うRubyやgemの状態を切り替えて、都度まっさらな状態にして環境構築を安全お手軽に、なんてこともできそう。こういうのがさくっとできたら、なんだかスマートですね。
Via:
ゆるーく、ふわーっと、興味のままに。
自分のかたわらに置いておくメモ代わり。