Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 如何避免;无法加载这样的文件--utils/popen";从OSX上的自制_Ruby_Macos_Rubygems_Homebrew - Fatal编程技术网

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