読者です 読者をやめる 読者になる 読者になる

ごんれのラボ

iOS、Android、Adobe系ソフトの自動化スクリプトのことを書き連ねています。

RVM導入めも その2

[Ruby][snowleopard]RVM導入めも その1の続き。

今回はサブマシンのMacBookくん(Leopard)にRVMをインストールするべく、自分のブログを見ながら挑戦してみた。

基本的な手順はSnowLeopardのときと同じなんだけど、若干相違点がある。

1.Macportsをインストールする

The MacPorts Project Official Homepageから自分の環境にあったdmgをダウンロード。

落としたdmgからMacportsをインストール。

SnowLeopardのときと同様。

2.Macportsを最新にする

$ sudo port selfupdate
$ sudo port sync

SnowLeopardのときと同様。

3.Macportsを使っていろいろインストール

$ sudo port install readline
$ sudo port install git-core
$ sudo port install curl

SnowLeopardのときと同様。

4.RVMをインストール

ここが違います。

curlでインストールできました。

RVM: Ruby Version Manager - Installing RVMを見て、そこに書いてあるシェルスクリプトをコピペしたらできました。

$ bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)

すんなりインストール完了。

しかし、のちにこれが悩みの種となることをこうちゃんはまだ知る由もなかったのだ。

.bash_profileに.bashrcを読ませる処理を行う。

$ echo source \~/.bashrc > ~/.bash_profile

$ touch ~/.bashrc

そして.bashrcを読み直す。

$ source ~/.bashrc

そしてターミナルを再起動してRVMが使えるか試す。

$ rvm -v

バージョン表記が流れればインストール成功。

ここまででSnowLeopardでインストールしたときとの相違点をまとめてみる。

一部手順間違いも含む。

1.MacPortsのパス通しを忘れた。

2.RVMのインストールはcurl経由で行った。

3.RVMのログにパス通しの記述がなかったのでスルーした。

1は素直に忘れた。

readlineのインストール時にパスを通してないことを思い出した。

でもMacPortsが自身へのパスを.bashrcに書き込んでいたので事なきを得た。

後々のトラブルのときにさらに調べてわかったんだけど、.profileや.bash_loginにもパスを書き込んでくれていた。

自己主張しすぎ?

こういうもんなのかなー。

鬱陶しいからトラブル対策中に一通りパスを削除して、SnowLeopardと同じように.bash_profileに書き込んでおいた。

2はなんとなく調べ直したらあっさり見つかった。

3は勝手にRVMインストール時に各所にパスを書き込んでくれたのでこの時点では自分で書き込んだりはしなかった。

この時点では、ね(^^;

5.Rubyをインストールする

readlineをオプション設定に入れないといけないみたいなので下記処理を行う。

$ vi ~/.rvm/user/db

# ↓追加する内容

ruby_configure_flags=--with-readline-dir=/Users/ユーザ名/.rvm/usr

会社では1.8.7環境なので、1.8.7と1.9.2をインストール。

$ rvm install 1.8.7
$ rvm install 1.9.2

結構インストールに時間がかかるので紅の豚を鑑賞。

かっこいいな。

そんなこんなでインストール終了。

早速RVMで切り替えてみよう。

$ rvm use 1.8.7

あれ?

エラーだぞ?

1.9.2を試してもエラー。

ふむぅ。

ここで先ほどまとめた相違点を思い出して、RVMのパスを通してみることにした。

viで.bashrcを開いてRVMインストール時に書き込まれたパスを消しつつ、下記パスを書き込む。

 -s "/Users/ユーザ名/.rvm/scripts/rvm"  && source "/Users/ユーザ名/.rvm/scripts/rvm"

続いて.bashrcを読み直し。

$ source ~/.bashrc

おお、通った!

理由はいまいち分からないけど、MacPorts用にパスを通しているので、上書きされてパスが通ってなかったみたい。

ついでにExifToolもインストールして、RubyGemsのmiin_exiftoolもインストール。

その辺りは[ruby]mini_exiftool導入してみたを参照のこと。

6.AppleScriptからRVMをコールしてRubyを操作する

さて、ここまでくればあともう少し。

AppleScriptからRVMをコールしてみましょう。

do shell script "source ~/.bash_profile; RVM -v

はい、エラーきたこれ。

もう驚かないよ、その代わり落ち込むけど。

do shell script "source ~/.bash_profile; echo $PATH

上記の結果をターミナルの結果と照合。

うん、RVMにパスが通ってないね。

ここから苦難の旅が幕を開けた。

ググりつつviでいろんなファイルを開いては閉じ、開いては閉じ。

mac miniのほうでもviでいろんなファイルを開いては閉じ、開いては閉じ。

二時間ぐらい格闘してようやく解決方法を見つけた。

パス通せばいいんだよ!

これに気づくのに二時間もかかるのは私ぐらいなものだろう。

パスが通ってないって分かっているんだからパスを追加すればいいだけじゃん…。

まぁいろいろ悩んだおかげで随所に書き込まれたパスの削除や、不要なファイルの削除とかできたから、結果良かったんだけどさ!

で、たどり着いた解決法が下記。

$ export PATH=/opt/local/bin:/opt/local/sbin:$HOME/.rvm/bin:$PATH

これで無事パスも通り、AppleScriptからRVM環境下のRubyを操作できる環境が出来ました!

長かった-。

せっかく早く帰ってきてゆっくりゲームしたり本を読もうと思ったのに、結局ずっとMacいじってたな。

むー。

おまけ。

viのコマンド?のメモ。

:wqは保存して閉じる。

:q!は保存しないで閉じる。

yyは1行コピーしてバッファへ送る。

nyyはn行コピーしてバッファへ送る。

ddは1行削除してバッファへ送る。

nddはn行削除してバッファへ送る。

pはバッファしたものをペースト。

aは編集モード。

Aは行末に移動して編集モード。

escは編集モードを抜ける。