Ruby / Homebrew / RVMをYosemiteで動作させるには?


118

ヨセミテをインストールした後、brewやrubyを実行できませんでした。

醸造の更新でこのエラーが発生しました:

/usr/local/bin/brew: /usr/local/Library/brew.rb: /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby: bad interpreter: No such file or directory
/usr/local/bin/brew: line 23: /usr/local/Library/brew.rb: Undefined error: 0

irbでこのエラーを取得:

/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:245:in mkdir': Permission denied - /Library/Ruby/Gems/2.0.0/extensions/universal-darwin-14 (Errno::EACCES) from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:245:infu_mkdir'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:219:in block (2 levels) in mkdir_p' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:217:inreverse_each'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:217:in block in mkdir_p' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:203:ineach'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:203:in mkdir_p' from /Library/Ruby/Site/2.0.0/rubygems/ext/builder.rb:210:inwrite_gem_make_out'
from /Library/Ruby/Site/2.0.0/rubygems/ext/builder.rb:132:in build_error' from /Library/Ruby/Site/2.0.0/rubygems/ext/builder.rb:171:inrescue in build_extension'
from /Library/Ruby/Site/2.0.0/rubygems/ext/builder.rb:156:in build_extension' from /Library/Ruby/Site/2.0.0/rubygems/ext/builder.rb:198:inblock in build_extensions'
from /Library/Ruby/Site/2.0.0/rubygems/ext/builder.rb:195:in each' from /Library/Ruby/Site/2.0.0/rubygems/ext/builder.rb:195:inbuild_extensions'
from /Library/Ruby/Site/2.0.0/rubygems/specification.rb:1436:in block in build_extensions' from /Library/Ruby/Site/2.0.0/rubygems/user_interaction.rb:45:inuse_ui'
from /Library/Ruby/Site/2.0.0/rubygems/specification.rb:1434:in build_extensions' from /Library/Ruby/Site/2.0.0/rubygems/stub_specification.rb:60:inbuild_extensions'
from /Library/Ruby/Site/2.0.0/rubygems/basic_specification.rb:56:in contains_requirable_file?' from /Library/Ruby/Site/2.0.0/rubygems/specification.rb:925:inblock in find_inactive_by_path'
from /Library/Ruby/Site/2.0.0/rubygems/specification.rb:924:in each' from /Library/Ruby/Site/2.0.0/rubygems/specification.rb:924:infind'
from /Library/Ruby/Site/2.0.0/rubygems/specification.rb:924:in find_inactive_by_path' from /Library/Ruby/Site/2.0.0/rubygems.rb:185:intry_activate'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/irb/locale.rb:150:in block in search_file' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/irb/locale.rb:158:inblock in each_localized_path'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/irb/locale.rb:167:in each_sublocale' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/irb/locale.rb:157:ineach_localized_path'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/irb/locale.rb:145:in search_file' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/irb/locale.rb:124:infind'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/irb/locale.rb:108:in load' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/irb/locale.rb:32:ininitialize'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/irb/init.rb:114:in new' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/irb/init.rb:114:ininit_config'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/irb/init.rb:16:in setup' from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/irb.rb:380:instart'
from /usr/bin/irb:12:in `'

回答:


281

このエラーは、次の手順で簡単に修正できます。

1)オープンターミナル

2)タイプ nano /usr/local/Library/brew.rb

3)1行目で「1.8」を「Current」に変更します。したがって、次のようになります。

#!/System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby -W0

http://blog.ic3man.gr/2014/06/homebrew-ruby-bad-interpreter-no-such-file-or-directory/経由


14
私はこの変更を行うとき、私はエラーを取得する「自作はヒョウ以上が必要タイガーのサポートについては、以下を参照してください。github.com/mistydemeo/tigerbrewを」私はヨセミテ実行しているにもかかわらず
scientiffic

4
残念ながらこれをPlease, commit your changes or stash them before you can merge.しようとするとエラーになりますbrew update
Naoiseゴールデン2014

10
"C"はCurrent#!/System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby -W0
Diabloの

@Diabloこれは10.10.1で更新されたと思います。以前のバージョンでは、「C」は大文字ではありませんでした。ありがとう。
raz0r 2014年

1
また、私は得たHomebrew requires Leopard or higher私は答えは以下のXcodeコマンドラインツールをインストールし、その後、それが動作するようになりました- :stackoverflow.com/a/24225960/1062936
グレッグ

39

私はヨセミテに更新しましたbrewが、後で壊れたことがわかりました。

/usr/local/bin/brew: /usr/local/Library/brew.rb: 
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby: bad interpreter: No such file or directory /usr/local/bin/brew: line 23: /usr/local/Library/brew.rb: Undefined error: 0

まだbrewに変更を加えていない場合は、以下をお勧めします。それ以外の場合は、以下をお読みください。

  1. cd /System/Library/Frameworks/Ruby.framework/Versions/
  2. sudo ln -s Current 1.8
  3. brew update
  4. sudo unlink 1.8

すでにbrewファイルに変更を加え、gitの混乱に陥っていますか?

編集を試みました/usr/local/Library/brew.rbが、gitリポジトリへのローカルな変更により、brew update更新をプルダウンできませんでした。私はこのページや他のサイトで言及されている他のいくつかの解決策を試しましたが、結局gitの混乱に終わりました。

変更をコミットしましたが、事態はさらに悪化しました。結局私は自分のコミットを元に戻さなければならずgit reset --hard HEAD~1、適切なコミットができるようになるまでは。バージョン管理されていないファイルも乱雑だった(/ usr / Localでファイルのアクセス許可を変更した)ので、git clean -f -dバージョン管理されていないすべてのファイルとディレクトリを削除し、変更を加える前の元の場所に戻しました。


3
この回答は機能しました(git messを元に戻すことを含む)。トップ投票の回答としてgitの問題が残りました。
スティーブM

システムのアップグレード後に非常に役立ちます。ありがとう
コーディング中毒

これは、ルートレスモードのため、El Capitanでは「ln:操作は許可されていません」で失敗します。あなたはここに回避策を見つけることができます:apple.stackexchange.com/questions/196224/...
ホルヘ・オルティス

37

それを修正する手順:

  1. Xcode 6のコマンドラインツールをインストールする

  2. brewを再インストールします。

    ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  3. brewをインストールすると、rvmが機能します。

    rvm install ruby

yahoo!


私はルビー稼働してましたが、これはまだ私のために働いていません。stackoverflow.com/questions/24113251/...
エデン

Xcode 6開発者ツールをインストールした後、rvmとnginxを完全に削除して再インストールしました。今それは魅​​力のように働いています。
2014年

1
これも私にとってはうまくいきました。ステップ1でこのコマンドを実行することを明確にしたかったのです。xcode-select
James Toomey

33

スクリプトを編集するbrew updateと、機能しなくなります。がgit pull失敗する原因となる追跡ファイルへのローカル編集があります。

私はこれをやった、私はよりきれいだと思う:

cd /usr/local/Library
git pull -q origin refs/heads/master:refs/remotes/origin/master

からの苦情はありませんbrew doctor


これを行うと、マージ前に移動する必要がある追跡されていないファイルに関するエラーが発生します。これらはすべてLibrary / Formula /にあるファイルです。
septerr 2014

あなたが何も編集していないと仮定すると、それが私に起こった場合、私は実行brew doctorしていくつかの指示に従う必要があることを意味します。brew doctorもしあなたがここにいるのなら、おそらくそれはあなたにとってうまくいかないという問題です。あなただけでgit stash、続けることができるかもしれません。
オットー

7

これは、他の人の投稿からの回答とGoogleを少し掘り下げた結果の集まりですが、私はそれを立てると思ったので、完全な回答が1か所にあります。具体的には、これで正常に機能するようになりますが、通常どおりbrewの更新を実行して、すべてを再度クリーンにすることもできます。

  1. /usr/local/Library/brew.rb(emacs / vi / nano / whatever)を開きます
  2. 最初の行を次のように変更します#!/System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby -W0。その行にあった「1.8」を「Current」に変更しているだけです(大文字の「C」を維持してください。そうしないと、後でgitが混乱します)。
  3. cd $(brew --repository)
  4. git add Library/brew.rb
  5. git commit -m "upgrading to ruby 2.0"
  6. brew update(またはsudo brew updateあなたの醸造がsudoでシステム変更のみを行うように設定されている場合)

クレジット:これの多くはここからのものですがgit commit -am/ usr / localフォルダーで実行しないことをお勧めします。


これは私のために働いた唯一の解決策です。このような非常に醜い混乱が頻繁に発生しているため、次のアプリではRubyとRailsから離れています。
デボラ

3

前述のように:1)現在のバージョンに変更2)xcode 6をインストール

brewとrubyでさらに問題が発生した場合は、これが役立つはずです:どういうわけかbrewはバージョン1.8でrubyが必要なので、フォルダーを作成します。

sudo mkdir -p /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin

そしてシンボリックリンクを作成します:

sudo ln -s /usr/bin/ruby /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby

ありがとう!これが私にとって有効な唯一の解決策でした;)
alejandromp、2015年

2

こちらのチュートリアルをご覧ください:http : //ryantvenge.com/2014/09/ruby-homebrea-yosemite/

それは私のために働いた!


このリンクで質問に答えることができますが、回答の重要な部分をここに含め、参照用のリンクを提供することをお勧めします。リンクされたページが変更されると、リンクのみの回答が無効になる可能性があります。
bummi

1

これを次のように修正しました:

  1. sudo chown -R $(whoami):admin /usr/local
  2. cd $(brew --prefix) && git fetch origin && git reset --hard origin/master


0

注:これは非常に危険であるため、完全に失敗した状態になった場合にのみ、以下を実行してください

例として私は得続けました

$ sudo ln -s現在の1.8

$醸造の更新

/usr/local/Library/brew.rb:18:in ':undefined method help?' [“ update”]:Array(NoMethodError)

私はこれを取得するだけです...(どのコマンドがコマンドで「更新」を切り替えるだけでも)バディ/usr/localフォルダーを要求することで問題を解決しました。次に、/usr/localフォルダのバックアップを作成しました。

sudo mv / usr / local /usr/local.orig

それから私は彼/usr/localを私のものに動かしました

sudo mv〜/ Downloads / local / usr / local

注:データが失われる可能性があるため、必ずバックアップを作成してください。


-1

パッケージマネージャーを使用してRubyをインストールしようとして問題が発生しました。これらのプログラムの公平を期して、私はそれらの経験がほとんどないことを認め、他のほとんどのレスポンダーのように深く掘る努力をしませんでした。私は怠惰で、ほとんどのopsysの選択肢と多くのパッケージで利用可能なバイナリインストーラーを使用することを好みます。残念ながら、Rubyはそれを提供していないようです。

ruby-buildは簡単にインストールでき(スタンドアロン-プラグインではなく)、ソースからRubyをエラーなしでビルドし、希望する場所に配置しました。

ビンゴ-簡単:)これは、パッケージマネージャーが説得に挑戦した私たちにとって、良い代替手段のように見えます。

チャーリー

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.