如何让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进行任何更改,这里是我推荐的。 否则请阅读下面。
-
cd /System/Library/Frameworks/Ruby.framework/Versions/
-
sudo ln -s Current 1.8
-
brew update
-
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
,它删除了所有未版本控制的文件和目录,并在我做出任何更改之前让我回到开始的位置。
步骤来解决它:
-
为Xcode 6安装命令行工具
-
重新安装brew:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
-
一旦酿造安装,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更新,并获得一切再次清理。
- 打开/usr/local/Library/brew.rb(emacs / vi / nano / whatever)
- 将第一行改为:
#!/System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby -W0
。 你只是把那个行的“1.8”改成“Current”(确保你保留大写“C”,否则git会在后面感到困惑)。 -
cd $(brew --repository)
-
git add Library/brew.rb
-
git commit -m "upgrading to ruby 2.0"
-
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/
它为我工作!
我解决这个如下:
-
sudo chown -R $(whoami):admin /usr/local
-
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
注意:如果您最终处于完全失败的状态,请仅执行以下操作,因为这非常危险
作为一个例子,我不断得到
$ 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。
查理