Cómo evitar "no se puede cargar dicho archivo - utils/popen" desde homebrew en OSX
Recibo un error cuando ejecuto brew
en la 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 son mis configuraciones de gemas:
- 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
Respuesta original
El problema ocurre principalmente después de actualizar OS X a El Capitan (OS X 10.11) o macOS Sierra (macOS 10.12).
Esto se debe a problemas de permisos de archivos con el nuevo proceso SIP de El Capitan o posterior de macOS . Intente cambiar los permisos del /usr/local
directorio:
$ sudo chown -R $(whoami):admin /usr/local
Si aún no funciona, sigue estos pasos dentro de una sesión de terminal y todo estará bien:
cd /usr/local/Homebrew
git reset --hard origin/master
brew update
Si /usr/local/Library/Homebrew
no funciona, inténtalo /usr/local/Homebrew
. El problema podría ser que Homebrew esté desactualizado.
Actualización de abril de 2021
El comando anterior no funciona para macOS High Sierra o superior, como se explica en esta edición de GitHub . Tienes que ejecutar esto en su lugar:
sudo chown -R $(whoami) $(brew --prefix)/*
Primero, abra una sesión de terminal y ejecute:
cd /usr/local/
git status
para ver si Homebrew está limpio.
Si está sucio, ejecuta:
git reset --hard && git clean -df
entonces
brew doctor
brew update
Si todavía no funciona, prueba esto en tu sesión:
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
Esto obligará a Homebrew a utilizar Ruby 1.8 desde la instalación del sistema.
Desinstalar homebrew:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"
Luego reinstale
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Advertencia: este script eliminará: /Library/Caches/Homebrew/ - gracias benjaminsila
En mi caso solo necesitaba eliminar el ejecutable de Homebrew usando:
sudo rm -f `which brew`
Luego reinstale Homebrew:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Después de actualizar a El Capitán, /usr/local
tiene root:wheel
derechos.
Cambie los derechos nuevamente al usuario usando:
sudo chown -R $(whoami):admin /usr/local
y:
brew doctor && brew update
Esto me ayudó a que Homebrew volviera a funcionar.