dポイントプレゼントキャンペーン実施中!

ruby on railsに詳しい方で分かる方がいればご教授いただきたいです。

先日までruby1.9.3, rails3.2.4を使用できていたのですが、他にいろんなものをインストールをしていた時に何か変になってしまったのか、突然railsが使用できなくなってしまいました。
OSはMac OS X 10.7.5です。

rails、gemの場所を調べるとopt/local/bin/となっているのですが、rails-vとすると
-bash: /opt/local/bin/rails: /opt/local/bin/ruby: bad interpreter: No such file or directory
gem -vとすると
-bash: /opt/local/bin/gem: /opt/local/bin/ruby: bad interpreter: No such file or directory
となってしまって使えません。しかしrubyは正常に動いているようです。

何か分かる方がいらっしゃいましたら、お力を貸して下さると非常に助かります。
作業ができずに困っています。どなたか、お願いします><

A 回答 (2件)

> +nosuffixしてなければ、ruby/gemではruby1.8.x、 ruby1.9/gem1.9では1.9.xが使われるはず



と書いたように、MacPortsでインストールしたRuby 1.9.xでは「1.9」というsuffix(後に付くもの)が付きます。
インストール時に+nosuffixを指定すれば、suffixが付きません。が、installed の結果は「ruby19 @1.9.3-p286_0+doc (active)」と nosuffixが無いので、1.9が付いています。


ただ、「ruby @1.8.7-p370_2 (active)」ともあるので、1.8.7もactiveで、/opt/local/bin/rubyが存在するはずなので、「opt/local/bin/ruby: bad interpreter: No such file or directory」というエラーとは状況が一致しないのが気になります。
sudo port -f deactivate ruby
sudo port activate ruby
でactiveしなおしたらこのエラー自体は治るかもしれません。
ただし、gemもrailsも1.8系になります。
1.9系を使うならgem1.9です

あと、MacPortsには rb19-rails 等のrailsに関係するパッケージも用意されています。
Ruby1.9をMacPortsのものを使うなら、railsをはじめ、必要なものはrb19-で始まるパッケージをMacPortsからインストールして、足りないものはgem1.9で、というのがいいかと思います。
    • good
    • 0
この回答へのお礼

Railsを再インストールしたら解決しました。
親身に相談に乗っていただき、ありがとうございました。

お礼日時:2012/12/13 03:02

/opt/local/を使っている、ということは、MacPortsを使ってインストールしたRubyではないでしょうか?


この他に、Macには最初からインストールされているRubyが /usr/bin/ruby にあります。

Rubyが使えるのは、この最初から入っていた方が使えているから。gemが使えないのは、MacPortsでインストールしたRubyを使おうとしているのに存在しないから、だと思われます。

最近、MacPortsでなにか操作しませんでしたか?ターミナルから
port installed "ruby*"
を実行して出てくるものに、rubyまたはruby19はありますか?activeになっていますか?
activeになっていないなら、activateで、そもそも出てこないならinstallで有効にします。

あと、+nosuffixしてなければ、ruby/gemではruby1.8.x、 ruby1.9/gem1.9では1.9.xが使われるはずですが、質問には、gem を使って ruby1.9.3とあります。どちらなのでしょう?

この回答への補足

回答ありがとうございます。
ご指摘の通り、最近Kinectを使う環境を整える時にMacportsを使いました。
Railsが使えなくなったのはその後からです。
今確認したところ、
The following ports are currently installed:
ruby @1.8.7-p370_2 (active)
ruby19 @1.9.3-p286_0+doc (active)
と表示されました。どちらもactiveになっているようです。

以前rubyをアップグレードしたい時にうまくいかず、rvmも使いました。
なので、だぶってしまっているのかもしれません…

最終的にrailsを使いたいのでgemが必要だと思っていたのですが、ruby初心者のためあまり詳しくなくてすみません。
今gem1.9 -vとしたところ、1.8.23と表示されました。
以前ruby19にアップグレードした時に、そのままだとruby19と入力しなければ使えないことがありましたが、それと同じ現象なのでしょうか?

補足日時:2012/11/18 20:26
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!