首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何避免OSX上的homebrew出现“无法加载此类文件-- utils/popen”

如何避免OSX上的homebrew出现“无法加载此类文件-- utils/popen”
EN

Stack Overflow用户
提问于 2014-07-09 19:53:42
回答 7查看 107.2K关注 0票数 326

当我在终端运行brew时,我得到一个错误:

代码语言:javascript
复制
 /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>'

以下是我的gem设置:

代码语言:javascript
复制
- RUBYGEMS VERSION: 2.0.14
- RUBY VERSION: 2.0.0 (2014-02-24 patchlevel 451) [universal.x86_64-darwin13]
- INSTALLATION DIRECTORY: /Library/Ruby/Gems/2.0.0
- RUBY EXECUTABLE: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby
- EXECUTABLE DIRECTORY: /usr/bin
- RUBYGEMS PLATFORMS:
  - ruby
  - universal-darwin-13
- GEM PATHS:
  - /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
- GEM CONFIGURATION:
  - :update_sources => true
  - :verbose => true
  - :backtrace => false
  - :bulk_threshold => 1000
EN

回答 7

Stack Overflow用户

发布于 2016-02-19 09:48:14

原始答案

该问题主要发生在将OS X更新到El Capitan (OS X 10.11)或macOS Sierra (macOS 10.12)之后。

这是因为El Capitan或更高版本的macOS的new SIP process存在文件权限问题。尝试更改/usr/local目录的权限:

代码语言:javascript
复制
$ sudo chown -R $(whoami):admin /usr/local  

如果它仍然不起作用,那么在终端会话中使用以下步骤,一切都会好起来的:

代码语言:javascript
复制
cd /usr/local/Homebrew
git reset --hard origin/master
brew update

如果/usr/local/Library/Homebrew不起作用,可以试试/usr/local/Homebrew。问题可能是Homebrew已经过时了。

Apr 2021更新

上面的命令不适用于macOS高山或更高版本,如本GitHub issue中所述。你必须运行下面的代码:

代码语言:javascript
复制
sudo chown -R $(whoami) $(brew --prefix)/*
票数 803
EN

Stack Overflow用户

发布于 2014-07-17 03:31:07

首先,打开终端会话并运行:

代码语言:javascript
复制
cd /usr/local/
git status

看看家酿是不是干净的。

如果它是脏的,请运行:

代码语言:javascript
复制
git reset --hard && git clean -df

然后

代码语言:javascript
复制
brew doctor
brew update

如果它仍然是坏的,在你的会话中试试这个:

代码语言:javascript
复制
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

这将迫使Homebrew在系统安装中使用Ruby1.8。

票数 379
EN

Stack Overflow用户

发布于 2015-10-08 15:35:07

更新到El Capitan后,/usr/local拥有root:wheel权限。

使用以下命令将权限更改回用户:

代码语言:javascript
复制
sudo chown -R $(whoami):admin /usr/local

和:

代码语言:javascript
复制
brew doctor && brew update

这帮助我让Homebrew再次工作。

票数 24
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24652996

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档