如何让Ruby / Homebrew / RVM在优胜美地上工作?

安装优胜美地后,我无法运行酿造或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 

在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 `' 

这个错误可以通过以下步骤轻松解决:

1)打开terminal

2)键入nano /usr/local/Library/brew.rb

3)在第一行改变“1.8”到“当前”,所以它应该是这样的:

 #!/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/

我更新到优胜美地,后来发现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文件进行了更改,并陷入混乱的混乱?

我试图编辑/usr/local/Library/brew.rb但本地更改为我的git回购是阻止brew update 。 我尝试了一些其他网站上提到的其他解决scheme,最后我得到了一个混乱,我想要做的就是取消我所做的所有事情。

我做了我的改变,但事情变得更糟。 最后,我不得不撤销我的提交和git reset --hard HEAD~1直到我正确的提交。 我也有一些非版本化的文件(我在/ usr / Local中更改了文件权限),所以我做了一个git clean -f -d ,它删除了所有未版本控制的文件和目录,并在我做出任何更改之前让我回到开始的位置。

步骤来解决它:

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

  2. 重新安装brew:

     ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 
  3. 一旦酿造安装,rvm将工作:

     rvm install ruby 

为我工作,雅虎!

编辑脚本意味着brew update不起作用; 有本地编辑来跟踪导致git pull失败的文件。

我这样做,我怀疑是更清洁:

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

没有来自brew doctor投诉。

这是一个来自其他人的post的答案,以及一些挖掘谷歌,但我想我会把它放在一个完整的答案在一个地方。 具体来说,这可以使事情现在正常工作,但也可以让你正常做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 (如果您的brew只设置为仅使用sudo进行系统更改,则为sudo brew update

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

就像之前说过的那样:1)改为当前2)安装xcode 6

如果你现在有进一步的问题酿造和ruby,这应该有所帮助:不知何故brew需要ruby版本1.8,所以创build文件夹:

 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 

看看这个教程在这里: http : //ryantvenge.com/2014/09/ruby-homebrea-yosemite/

它为我工作!

我解决这个如下:

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

brew更新错误可以用这个固定:

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

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

注意:如果您最终处于完全失败的状态,请仅执行以下操作,因为这非常危险

作为一个例子,我不断得到

$ sudo ln -s当前1.8

$ brew更新

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

我只是得到这个…(不pipe什么命令只是用命令“更新”)我通过要求一个好友/usr/local文件夹解决了问题。 然后我做了/usr/local文件夹的备份。

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

然后我把他/usr/local移到我的

sudo mv〜/ Downloads / local / usr / local

注意:您可能会丢失一些数据,请确保进行备份。

我尝试使用包pipe理器安装Ruby时遇到了问题。 公平地对待这些计划,我承认自己没有什么经验,也没有像大多数其他反应者那样努力地深入挖掘。 我很懒,宁愿使用二进制安装程序可用于大多数opsys的select和许多包。 不幸的是,Ruby似乎没有提供一个。

我发现ruby-build容易安装(独立 – 不是插件),它从源代码构buildRuby没有错误,并把它放在我想要的地方。

Bingo – easy :)这对于我们这些包pipe理者挑战说服来说,看起来是一个很好的select。

查理