Ruby 如何避免;无法加载这样的文件--utils/popen";从OSX上的自制
在终端中运行Ruby 如何避免;无法加载这样的文件--utils/popen";从OSX上的自制,ruby,macos,rubygems,homebrew,Ruby,Macos,Rubygems,Homebrew,在终端中运行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.
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>'
首先,打开终端会话并运行:
cd /usr/local/
git status
看看自制啤酒是否干净
如果是脏的,运行:
git reset --hard && git clean -df
然后
如果它仍然损坏,请在会话中尝试以下操作:
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从系统安装中使用Ruby 1.8。此问题应在最新版本的Homebrew中解决。尝试重新安装它,如主页上所述。在我的情况下,我只需要使用以下方法删除Homebrew的可执行文件:
sudo rm -f `which brew`
然后重新安装自制软件:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
更新到El Capitan后,
/usr/local
拥有root:wheel
权限
使用以下方法将权限更改回用户:
sudo chown -R $(whoami):admin /usr/local
以及:
这帮助我让自制软件重新工作。原始答案
问题主要发生在将OS X更新为El Capitan(OS X 10.11)或macOS Sierra(macOS 10.12)之后
这是因为El Capitan或更高版本的macOS存在文件权限问题。尝试更改/usr/local
目录的权限:
$ sudo chown -R $(whoami):admin /usr/local
如果仍然不起作用,请在终端会话中使用以下步骤,一切都会好起来:
cd/usr/local/Library/Homebrew
git重置——硬
吉特清洁-df
brew更新
如果/usr/local/Library/Homebrew
不起作用,请尝试/usr/local/Homebrew
。问题可能是自制的已经过时了
2021年4月更新
如上所述,上述命令不适用于macOS High Sierra或更高版本。您必须运行以下命令:
sudo chown-R$(whoami)$(brew--前缀)/*
卸载自制软件:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"
然后重新安装
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
警告:此脚本将删除:/Library/Caches/Homebrew/-thks第一次执行时:
sudo chown -R $(whoami):admin /usr/local
然后:
对我来说,感觉好像缺少了popen的头文件,这是一个C系统库 检查您是否已使用命令行工具成功安装xcode并已接受许可证
有关详细信息,请参阅此线程:要恢复自制设置,请尝试以下操作:
cd /usr/local/Homebrew/Library && git stash && git clean -d -f && git reset --hard && git pull
你能添加信息吗?您到底运行了什么命令?我刚刚在unix中输入了“brew”,当您运行
brew doctor
时会发生什么?同样的错误。这是我的环境宝石设置,比如你的ruby安装不完整。尝试重新安装或使用另一个ruby安装。如果在brew安装/卸载循环中遇到此问题,请使用以下链接-您是否收到此会议尝试第二个命令(这似乎表明出现了问题,但不是错误)?-/usr/local的当前内容是bin ceral CODEOFCONDUCT.md contribution.md etc框架git include lib lib lib Library LICENSE.txt opt Qt4.7 README.md share SUPPORTERS.md var.git。gitignore@PandaWood不,我没有。您在评论中用“此消息”描述的错误消息的内容是什么?@deeperx“-”后面的所有内容。最后,我不得不卸载brew并重新安装again@PandaWood你使用正确的逗号吗?你能直接复制粘贴到这里吗?这可能是一个很好的答案,但顺便说一句,我在运行这两个命令时还遇到了其他错误-give(我提到了,以防有人想进一步介绍这个场景):-rm:/System/Library/Frameworks/Ruby.framework/Versions/Current:Operation not permitted我只是用一个新版本重新安装了homebrew,它就开始工作了。查看homebrew主页上的安装链接,当您尝试安装时,它会抱怨homebrew已经安装,并教您如何卸载。因此,卸载/重新安装让homebrew再次为我工作。它还删除了它安装的所有东西,基本上毁了我的系统。因此,这不是一个很好的解决方案。如果您在使用ruby时遇到错误,并且正在使用RVM,请尝试发布RVM use system
,以确保在运行brew update
时使用Mac OS X的ruby。请注意,最新版本的OS X上的默认ruby为2.0,不是1.8。这不是很危险吗?出于安全原因,操作系统中更改了对/usr/local
的权限-因此,仅仅因为您“像以前一样返回了权限”并不意味着这是一件好事。我卸载了自制软件,然后重新安装。修正了这个问题@OsTa ruby-e“$(curl-fsSL)”警告:此脚本将删除:/Library/Caches/Homebrew/类似于散弹枪的方法,但这比尝试管理文件权限更容易…在升级到10.12(Sierra)的系统上对我有效,卸载/重新安装后,我能够运行“brew doctor”,并按照那里的说明修复一些权限问题。现在工作正常硬盘崩溃后,我的底层git存储库已损坏,虽然git重置无法正常工作,但卸载/重新安装确实有效。然而,我不得不重新安装我所有安装的软件包。我遇到了由El Capitan更新引起的问题。这就解决了问题。谢谢。同样的,升级到El Capitan会破坏它,我必须先重置权限,然后运行git命令,brew更新工作正常。谢谢。如果您在升级到El Capitan后遇到此问题,这是正确的答案:)在升级到macOS Sierra后出现此问题。这就解决了,谢谢!不过,现在似乎不需要更改/usr/local
上的权限。“自制不再需要拥有/usr/local的所有权。如果您愿意,可以使用:sudo chown root:wheel/usr/local
“第二种方法对我有效。”。我只需要找到自制目录的位置。在我的例子中:/usr/local/Library/Homebrew
FYI,我的Homebrew安装在/usr/local/Homebrew/
,所以我不得不使用cd$(brew--prefix)/Homebrew
。
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
sudo chown -R $(whoami):admin /usr/local
cd $(brew --prefix) && git fetch origin && git reset --hard origin/master
cd /usr/local/Homebrew/Library && git stash && git clean -d -f && git reset --hard && git pull