MavericksにはRuby 2.0.0と1.8.7が入っていて/usr/bin/ruby
は2.0
の物になってます。
以前はOctopressでRuby 1.9.3以上が必要だということで、 Lionに入ってたのが1.8.7だけだったのでrvmで 1.9.3をインストールしていました1。
Mavericksでは新しいRubyが入ってるので、一回綺麗にするためにも rvmを消して元から入ってるものを使うようにしてみました。
変更手順
rvmのアンインストール
rvmには自分自身をアンインストールするコマンドがあり、
implode
及び、seppuku
です。
(切腹というと自ら身を引く、と言う感じですが、
implodeって言うとなんか最後にはっちゃけて終わると言う感じで
なんとなく逆の意味な感じ。
残念ながら消してしまうのですね、と言う感じを出すには
seppuku
というのがなんとも。
関係無いですが。)
$ rvm seppuku
などとすればrvm_path
(通常~/.rvm
)が削除されます。
.bashrc
等の設定ファイルにrvmの設定を読み込むような設定を書いてる場合、
ファイルが無いとエラーを吐くような設定なら消しておきます。
# Load RVM into a shell session *as a function*
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
こんな感じで書いてある場合は、無ければなにもしないので 取り敢えずそのまま残しておいてもOK。 邪魔なら消す。
Xcodeコマンドラインツールをインストール
下に書く様に色々と設定がごちゃごちゃになってたんですが、 どうもxcodeのコマンドラインツールをちゃんと入れてなかったのが問題だった様 (Xcodeの最新版(5.0.1)はApp Storeから導入済み)。
コマンドラインツールは
$ xcode-select --install
でインストール出来ます(ダイアログが出てくるので、インストール
を選択)。さらにXcodeをまだ立ち上げてない場合は
一度立ち上げて認証をする作業が必要になりますが、
これもコマンドラインから
$ sudo xcodebuild -license
とすればつらつらとライセンスが出てくるので、読んで
最後にagree
を書き込めばOK。
ちなみにこのインストールでrequire ‘osx/cocoa’が出来ない件も直るかな?と思いましたが、これは別問題の様で駄目でした。
bundlerをインストール
$ sudo gem install bundler
これをすると、今後、/Library/Ruby
へパッケージをインストールしていくことになるのですが、
このままだと毎回rootにならないといけないので、
個人PCだからいいかということで、
$ sudo chown -R $USER /Library/Ruby
をしてユーザーで書き込める様に変更しておきます。
これで、octopressのディレクトリに行って 改めて
$ bundle install
をすればrake
コマンドが使える様になります。
以下、色々とやる過程で出てきたエラー。
色々紆余曲折
rvmをアンインストールした段階で、単にrake
を実行
$ rake generate
rake aborted!
cannot load such file -- bundler/setup
.../octopress/Rakefile:2:in `<top (required)>'
(See full trace by running task with --trace)
当然上手くいかない。
bundle install
とかしてみると
$ bundle install
/Library/Ruby/Site/1.8/rubygems/dependency.rb:298:in `to_specs': Could not find 'bundler' (>= 0) among 0 total gem(s) (Gem::LoadError)
from /Library/Ruby/Site/1.8/rubygems/dependency.rb:309:in `to_spec'
from /Library/Ruby/Site/1.8/rubygems/core_ext/kernel_gem.rb:47:in `gem'
from /usr/bin/bundle:18
何故かRuby 1.8の方を見に行ってる。
PATH等には設定はないし
/System/Library/Frameworks/Ruby.framework/Versions/Current
も2.0をちゃんと指している。
$ which ruby
/usr/bin/ruby
$ ls -l /usr/bin/ruby
lrwxr-xr-x 1 root wheel 76 xx Oct xx:xx /usr/bin/ruby -> ../../System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby
$ ls -l /System/Library/Frameworks/Ruby/framework/Versions/Current
lrwxr-xr-x 1 root wheel 3 xx Oct xx: /System/Library/Frameworks/Ruby.framework/Versions/Current -> 2.0
この辺、しっかりとは把握してませんが、 xcodeのコマンドラインツールの導入時に色々設定されている様で、 古い設定が残っていた、ということかと思います、多分。。。
段々といっその事クリーンインストールすればよかったんじゃ、と思い始めたり。。。