rbenvを使ってrubyをインストールした時のパス

XCodeでいろいろするためにRubyをいろいろしていたんですが、その余波で今まで作ってたRubyスクリプトが動かなくなってまして、直そうと思ったらハマったので残しておきます。(いつものことですが慣れた人には当たり前のことなのかも)

 結論から書くと、スクリプトの1行目に書く「#!〜」ってのは

#!/usr/bin/env ruby

と書くとよさそう、という話です。(おわり)

今までRubyはHomebrewを使っていたんですが、Rubyが2.0.0になってしまいました。まぁだいたい動くんだとは思うんですが、いろいろ不都合があって1.9.3を入れなおしたくなったので、rbenvを使った複数バージョン共存環境を作りました。rbenvを使ってRubyをうんぬんする話は探すといろいろ出てくるので、探してみてください。

で、そうするとRubyのパスが変わるのでスクリプトの先頭行に書くRubyへのパスも書き換えないといけないのです。今のRubyのパスを調べようとwhich ruby とすると /Users/(ユーザー名)/.rbenv/shims/ruby と出てくるので、そのままコピペしたらスクリプトが動かなくなりました。スクリプトの先頭でファイルをopenしてるのですが、その行でSyntax errorが出ちゃうのです。

なんでかなーと思ってスクリプトを直接実行するのではなく、Rubyの引数としてスクリプト名を渡すとちゃんと動作するので、スクリプトの問題ではなさそうだということがわかりました。あと、OSXに最初から入っているRuby(1.8.7)のパスにするとそのSyntax errorは出なくなります。(Ruby1.9用のスクリプトなので他でエラーが出て動かないのですが)

はてどうしたもんかなーと思っていろいろ探してみたところ、どうやら冒頭の

#!/usr/bin/env ruby

にしておくと、rbenvでインストールしたRubyでもちゃんと動作するようになりました。
めでたしめでたし。

初めてのRuby
初めてのRuby

posted with amazlet at 13.03.29
Yugui
オライリージャパン
売り上げランキング: 21,896
たのしいRuby 第3版
たのしいRuby 第3版

posted with amazlet at 13.03.29
高橋 征義 後藤 裕蔵
ソフトバンククリエイティブ
売り上げランキング: 21,790
カテゴリー: ありものソフト, ソースコード, Mac, Ruby タグ: パーマリンク

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中