Como evitar "não é possível carregar esse arquivo - utils / popen" do homebrew no OSX

327

Estou recebendo um erro quando corro brewno terminal:

 /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>'

Estas são as minhas configurações de gema:

- 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
kerokero
fonte
1
Você pode adicionar informações? Que comando você executou exatamente?
Unihedron
eu digitei "cerveja" em unix
Kerokero
O que acontece quando você corre brew doctor?
precisa saber é o seguinte
mesmo erro. aqui estão as minhas configurações gem env
Kerokero
Parece que sua instalação ruby ​​está incompleta. Tente reinstalar ou usar outra instalação ruby.
9134 gorootde

Respostas:

803

O problema ocorre principalmente após a atualização do OS X para El Capitan (OS X 10.11) ou macOS Sierra (macOS 10.12).

Isso ocorre devido a problemas de permissão de arquivo no novo processo SIP do El Capitan ou posterior do macOS . Tente alterar as permissões para o /usr/localdiretório:

$ sudo chown -R $(whoami):admin /usr/local  

Se ainda assim não funcionar, siga estas etapas em uma sessão do terminal e tudo ficará bem:

cd /usr/local/Library/Homebrew  
git reset --hard  
git clean -df
brew update

Isso pode ocorrer porque o homebrew não é atualizado.

Vineet Kapoor
fonte
39
Eu tive o problema causado pela atualização do El Capitan. Isso resolveu o problema. Obrigado.
Vivek
4
Mesmo aqui, a atualização para o El Capitan quebrou, tive que redefinir as permissões primeiro e depois executar os comandos git e a atualização do brew funcionou. Obrigado.
22416 Bob
4
Esta é a resposta certa se você está enfrentando esse problema após a atualização para El Capitan :)
chemic
3
Este problema ocorreu após a atualização para o macOS Sierra . Isso resolveu, obrigado! No entanto, alterar permissões /usr/localnão parece ser necessário agora. "O Homebrew não precisa mais ter a propriedade de / usr / local. Se desejar, você pode retornar /usr/localà propriedade padrão com: sudo chown root:wheel /usr/local"
Bert
5
O segundo método funcionou para mim. Eu só precisava encontrar onde o HOMEBREWdiretório estava localizado. No meu caso:/usr/local/Library/Homebrew
Alexander
378

Primeiro, abra uma sessão do terminal e execute:

cd /usr/local/
git status

para ver se o Homebrew está limpo.

Se estiver sujo, execute:

git reset --hard && git clean -df

então

brew doctor
brew update

Se ainda estiver quebrado, tente isso em sua sessão:

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

Isso forçará o Homebrew a usar o Ruby 1.8 a partir da instalação do sistema.

richarddong
fonte
7
Provavelmente é uma boa resposta, mas BTW recebo outros erros ao executar os dois comandos (mencione caso alguém queira cobrir esse cenário adicional): - rm: /System/Library/Frameworks/Ruby.framework/Versions/Current: Operação não permitida
PandaWood 19/02
4
Simplesmente reinstalei o homebrew com uma versão nova e ela começou a funcionar. Verifique a página inicial do homebrew com o link para instalar e, quando você tentar, ele reclamará que o homebrew já está instalado e ensinará como desinstalar.
Pertz
Portanto, a desinstalação / reinstalação fez o Homebrew funcionar novamente para mim. Ele também excluiu tudo o que havia instalado, basicamente destruindo meu sistema. Portanto, não é uma ótima solução.
Evan Knowles
Se você estiver recebendo erros com rubi e você estiver usando RVM, tente emitir rvm use systempara garantir que você está usando ruby do Mac OS X ao executarbrew update
DavidJ
Observe que o Ruby padrão nas versões recentes do OS X é 2.0, não 1.8.
bfontaine
82

Desinstale o homebrew:

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

Então reinstale

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Aviso: Este script irá remover: / Biblioteca / Caches / Homebrew / - thks benjaminsila

odemolliens
fonte
1
Executo uma desinstalação do Homebrew e, em seguida, uma reinstalação. Corrigido o problema. @OsTa rubi -e "$ (curvatura -fsSL raw.githubusercontent.com/Homebrew/install/master/uninstall )" Aviso: Este script irá remover: / Library / Caches / Homebrew /
BenJaminSila
3
Uma espécie de abordagem shotgun, mas isso funcionou mais facilmente do que a tentar gerir permissões de arquivo ...
BenKarl
1
Trabalhou para mim Em um sistema atualizado para 10.12 (Sierra), após a desinstalação / reinstalação, eu consegui executar o 'brew doctor' e segui as instruções para corrigir alguns problemas de permissão. Funcionando bem agora
codesponge
Após uma falha no disco rígido, meu repositório git subjacente estava corrompido e, embora o git reset não funcionasse, a desinstalação / reinstalação funcionou. No entanto, tive que reinstalar todos os meus pacotes instalados.
bsumirak
26

No meu caso, eu só precisava remover o executável do Homebrew usando:

sudo rm -f `which brew`

Em seguida, reinstale o Homebrew:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Inanc Gumus
fonte
2
Caso você fique preso após isso no loop de instalação / desinstalação do brew, use o link a seguir - github.com/Homebrew/homebrew/issues/44460
fortm
Você recebeu essa mensagem tentando o segundo comando (o que parece ser uma indicação de que algo deu errado, embora não seja um erro)? - O conteúdo atual de / usr / local são bin Cellar CODEOFCONDUCT.md CONTRIBUTING.md etc Quadros git incluem lib Biblioteca LICENSE.txt opt Qt4.7 README.md share SUPPORTERS.md var .git .gitignore
PandaWood
@PandaWood não, eu não fiz. qual é o conteúdo da mensagem de erro que você descreve com 'esta mensagem' no seu comentário?
Inanc Gumus
@deeperx Tudo depois do "-". No final, eu tive que cerveja desinstalar e reinstalar novamente
PandaWood
@PandaWood Você usa vírgulas corretas? Você pode copiar e colar aqui diretamente?
Inanc Gumus
24

Depois de atualizar para El Capitan, /usr/localtem root:wheeldireitos.

Mude os direitos novamente para o usuário usando:

sudo chown -R $(whoami):admin /usr/local

e:

brew doctor && brew update

Isso me ajudou a fazer o Homebrew funcionar novamente.

Josef Rysanek
fonte
2
não é muito perigoso?
FRAGA
As permissões /usr/localforam alteradas no sistema operacional por razões de segurança - apenas porque você "devolveu os direitos como antes" não significa que é uma boa coisa a fazer.
Leanne
8

Primeiro eu executei:

sudo chown -R $(whoami):admin /usr/local

Então:

cd $(brew --prefix) && git fetch origin && git reset --hard origin/master
d0ping
fonte
1
Para sua informação, minha instalação do Homebrew estava em /usr/local/Homebrew/modo que eu tive que usar cd $(brew --prefix)/Homebrew.
Joshua Pinter
3

Esse problema deve ser corrigido na versão mais recente do Homebrew. Tente reinstalá-lo, descrito na home page do Homebrew .

Fred
fonte
1

Para mim, parece que faltam arquivos de cabeçalho para o popen, que é uma biblioteca de sistemas em C.

Verifique se você instalou o xcode com êxito com as ferramentas de linha de comando e aceitou a licença.

Consulte este tópico para obter mais informações: Como instalar as ferramentas de linha de comando do Xcode

Dennis
fonte
0

Para restaurar sua configuração do Homebrew, tente o seguinte:

cd /usr/local/Homebrew/Library && git stash && git clean -d -f && git reset --hard && git pull
mrded
fonte