自制软件不在OSX上工作

ker*_*ero 326 ruby macos homebrew rubygems

在终端上运行brew命令时出现此错误.需要帮助解决.

 /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- utils/popen (LoadError)
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/local/Library/Homebrew/utils.rb:6:in `<top (required)>'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/local/Library/Homebrew/global.rb:9:in `<top (required)>'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/local/Library/brew.rb:16:in `<main>'
Run Code Online (Sandbox Code Playgroud)

这是我的env gem设置:

  • RUBYGEMS版本:2.0.14
  • RUBY VERSION:2.0.0(2014-02-24 patchlevel 451)[universal.x86_64-darwin13]
  • 安装目录:/ Library/Ruby/Gems/2.0.0
  • RUBY EXECUTABLE:/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby
  • 可执行的目录:/ usr/bin
  • RUBYGEMS PLATFORMS:
    • 红宝石
    • 通用 - 达尔文-13
  • 创业板路径:
    • /Library/Ruby/Gems/2.0.0
    • /Users/ronaldkwan/.gem/ruby/2.0.0
    • /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/gems/2.0.0
  • 创业板配置:
    • :update_sources => true
    • :verbose => true
    • :backtrace => false
    • :bulk_threshold => 1000

Rag*_*oor 802

问题主要发生在将OS X更新为El Capitan(OS X 10.11)或macOS Sierra(macOS 10.12)之后.这主要是因为El Capitan或更高版本的macOS 新SIP进程存在文件权限问题.尝试更改/ usr/local目录的权限.

$ sudo chown -R $(whoami):admin /usr/local  
Run Code Online (Sandbox Code Playgroud)

如果仍然无效,请使用以下步骤,一切都会好的.这可能是因为自制软件没有更新.

1. open terminal  
2. $ cd /usr/local/Library/Homebrew  
3. $ git reset --hard  
4. $ git clean -df
5. $ brew update
Run Code Online (Sandbox Code Playgroud)

  • 我遇到了El Capitan更新引起的问题.这解决了这个问题.谢谢. (39认同)
  • 第二种方法对我有用.我只需要找到`HOMEBREW`目录所在的位置.在我的情况下:`/ usr/local/Library/Homebrew` (5认同)
  • 同样在这里,升级到El Capitan打破了它,我不得不首先重置权限然后运行git命令和brew更新工作.谢谢. (4认同)
  • 如果您在升级到El Capitan后遇到问题,这是正确的答案:) (4认同)
  • 升级到**macOS Sierra**之后有这个问题.这解决了,谢谢!但是,现在似乎不需要更改`/ usr/local`的权限."Homebrew不再需要拥有/ usr/local.如果你希望你可以将`/ usr/local`恢复为默认所有权:`sudo chown root:wheel/usr/local`" (3认同)
  • 不再适用于“高山脉” **。https://github.com/Homebrew/brew/issues/3228#issuecomment-332679274:`sudo chown -R $(whoami)$(brew --prefix)/ *` (2认同)
  • 已修复,但路径为: cd /usr/local/Homebrew (2认同)

ric*_*ong 379

首先,打开终端cd /usr/local/,并git status看看Homebrew是否干净.

如果脏了, git reset --hard && git clean -df

然后brew doctor,brew update

如果仍然坏了,请在终端中尝试:

$ sudo rm /System/Library/Frameworks/Ruby.framework/Versions/Current
$ sudo ln -s /System/Library/Frameworks/Ruby.framework/Versions/1.8 /System/Library/Frameworks/Ruby.framework/Versions/Current
Run Code Online (Sandbox Code Playgroud)

这将迫使Homebrew从系统中使用ruby 1.8

  • 可能是一个很好的答案,但BTW我在运行这两个命令时得到了其他错误(我提到任何人想要覆盖这个进一步的情况): - rm:/System/Library/Frameworks/Ruby.framework/Versions/Current:不允许操作 (7认同)
  • 我只是重新安装了带有新版本的自制软件,它开始工作了.检查自制主页和安装链接,当你尝试它时会抱怨已经安装了自制程序,并教你如何卸载. (4认同)

ode*_*ens 82

卸载自制程序:

 ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"
Run Code Online (Sandbox Code Playgroud)

然后重新安装

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Run Code Online (Sandbox Code Playgroud)

警告:此脚本将删除:/ Library/Caches/Homebrew / - thks benjaminsila

  • 一种霰弹枪方法,但这比试图管理文件权限更容易... (3认同)

Ina*_*mus 26

在我的情况下,我只需要删除brew可执行文件:

sudo rm -f `which brew`
Run Code Online (Sandbox Code Playgroud)

然后重新安装自制软件:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Run Code Online (Sandbox Code Playgroud)

  • 如果你在brew安装/卸载循环中遇到困难,请使用以下链接 - https://github.com/Homebrew/homebrew/issues/44460 (2认同)

Jos*_*nek 24

更新到El Capitan后,/ usr/local目录具有root:wheel权限.将权利更改回给我

sudo chown -R $(whoami):admin /usr/local
Run Code Online (Sandbox Code Playgroud)

brew doctor && brew update
Run Code Online (Sandbox Code Playgroud)

帮助我重新开始酿造.

  • 这不是很危险吗? (2认同)

d0p*_*ing 8

首先我执行了......

sudo chown -R $(whoami):admin /usr/local
Run Code Online (Sandbox Code Playgroud)

然后...

cd $(brew --prefix) && git fetch origin && git reset --hard origin/master
Run Code Online (Sandbox Code Playgroud)