如何让Ruby/Homebrew/RVM在Yosemite上运行?

ede*_*den 118 ruby homebrew ruby-on-rails osx-yosemite

安装Yosemite后,我无法运行brew或ruby.

我在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
Run Code Online (Sandbox Code Playgroud)

在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 `'
Run Code Online (Sandbox Code Playgroud)

小智 281

可以通过以下步骤轻松修复此错误:

1)打开终端

2)类型 nano /usr/local/Library/brew.rb

3)在第一行中将"1.8"更改为"Current",因此它应如下所示:

#!/System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby -W0
Run Code Online (Sandbox Code Playgroud)

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

  • 当我进行此更改时,我收到错误"Homebrew需要Leopard或更高版本.对于Tiger支持,请参阅:https://github.com/mistydemeo/tigerbrew"即使我正在运行优胜美地 (14认同)
  • "C"必须大写为当前`#!/ System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby​​ -W0` (10认同)
  • 这会给你一个"请,提交你的更改或存储它们然后你可以合并."错误,当你试图'brew update`时不幸. (4认同)

Jas*_*n R 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
Run Code Online (Sandbox Code Playgroud)

如果您还没有对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文件进行了更改并陷入混乱?

我试图编辑,/usr/local/Library/brew.rb但我的git仓库的本地更改阻止brew update了更新.我尝试了本页和其他网站上提到的其他一些解决方案,我最终得到了一个混乱,我想要做的就是撤消我所做的所有酿造工作.

我做出了改变,但事情变得更糟.最终我不得不撤消我的提交,git reset --hard HEAD~1直到我处于正确的提交状态.我的版本的文件,乱七八糟太(我改变文件的权限在/ usr /本地),所以我做了git clean -f -d它删除了所有版本的文件和目录,并让我回到我开始之前,我所做的任何更改.

  • 这个答案有效(包括撤消git mess),因为最高投票的答案给我留下了git问题. (3认同)

ede*_*den 37

修复它的步骤:

  1. 安装Xcode 6的命令行工具

  2. 重新安装brew:

    ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    
    Run Code Online (Sandbox Code Playgroud)
  3. 一旦安装brew,rvm将起作用:

    rvm install ruby
    
    Run Code Online (Sandbox Code Playgroud)

为我工作,雅虎!


Ott*_*tto 33

编辑脚本意味着brew update不起作用; 对跟踪文件进行本地编辑会导致git pull失败.

我这样做了,我怀疑它更干净:

cd /usr/local/Library
git pull -q origin refs/heads/master:refs/remotes/origin/master
Run Code Online (Sandbox Code Playgroud)

没有投诉brew doctor.


Eli*_*Eli 7

这是来自其他人帖子的答案以及对谷歌的一些挖掘的集合,但我想我会把它放在一起,所以一个完整的答案就在一个地方.具体来说,这可以让事情现在起作用,但也可以让你像往常一样刷新更新,让一切恢复干净.

  1. 打开/usr/local/Library/brew.rb(emacs/vi/nano /等)
  2. 将第一行更改为:#!/System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby -W0.你只是将那行中的"1.8"改为"当前"(确保你保留大写"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如果您的brew设置为仅使用sudo进行系统更改)

信用:很多都来自这里,但我真的建议git commit -am你不要在你的/ usr/local文件夹中做.