web-dev-qa-db-ja.com

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

Yosemiteをインストールした後、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 `'
118
eden

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

1)ターミナルを開く

2)nano /usr/local/Library/brew.rbと入力します

3)最初の行で「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/

281
raz0r

修正手順:

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

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

    Ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    
  3. Brewがインストールされると、rvmは動作します:

    rvm install Ruby
    

ヤフー、私のために働いた!

37
eden

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

私はこれをしましたが、きれいだと思います:

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

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

33
Otto

これは、他の人の投稿からの回答とGoogleでの少しの掘り出し物の集合体ですが、完全な回答が1か所に収まるように配置すると思いました。具体的には、これにより今すぐ動作するようになりますが、通常どおり更新を作成して、すべてを再びクリーンにすることもできます。

  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(またはbrewがSudoでシステム変更のみを行うように設定されている場合はSudo brew update

クレジット:この多くは here に由来しますが、/ usr/localフォルダーでgit commit -amを実行することは本当にお勧めしません。

7
Eli

前述のように: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
3
Vanessa Böhner

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

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

2
user790999

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

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

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

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

$ Sudo ln -s現在1.8

$ brew update

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

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

Sudo mv/usr/local /usr/local.orig

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

Sudo mv〜/ Downloads/local/usr/local

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

0
abc123

brew updateエラーはこれで修正できます:

Sudo chown -R $USER:admin /usr/local
cd /usr/local
git reset --hard Origin/master
brew update

https://github.com/Homebrew/homebrew/issues/1914

0
user260826