Cómo evitar "no se puede cargar dicho archivo - utils / popen" de homebrew en OSX

327

Recibo un error cuando ejecuto brewen 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
kerokero
fuente
1
¿Puedes agregar información? ¿Qué comando ejecutaste exactamente?
Unihedron
i acaba de escribir "cerveza" en UNIX
kerokero
¿Qué pasa cuando corres brew doctor?
grenierm5
mismo error. aquí están mis configuraciones de gemas env
kerokero
Parece que su instalación de ruby ​​está incompleta. Intente reinstalar o usar otra instalación de ruby.
gorootde

Respuestas:

803

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 macOS de El Capitan o posterior . Intente cambiar los permisos para el /usr/localdirectorio:

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

Si todavía no funciona, siga estos pasos dentro de una sesión de terminal y todo estará bien:

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

Esto puede deberse a que homebrew no está actualizado.

Vineet Kapoor
fuente
39
Tuve el problema causado por la actualización de El Capitan. Esto resolvió el problema. Gracias.
Vivek
44
Lo mismo aquí, la actualización a El Capitan lo rompió, primero tuve que restablecer los permisos y luego ejecutar los comandos git y la actualización de brew funcionó. Gracias.
Bob
44
Esta es la respuesta correcta si se enfrentan a este problema después de la actualización a El Capitán :)
chemic
3
Tuve este problema después de actualizar a macOS Sierra . Esto lo resolvió, gracias! Sin embargo, cambiar los permisos /usr/localno parece ser necesario ahora. "Homebrew ya no necesita ser propietario de / usr / local. Si lo desea, puede volver /usr/locala su propiedad predeterminada con: sudo chown root:wheel /usr/local"
Bert
55
El segundo método funcionó para mí. Solo necesitaba encontrar dónde HOMEBREWestaba ubicado el directorio. En mi caso:/usr/local/Library/Homebrew
Alexander
378

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

luego

brew doctor
brew update

Si todavía está roto, intente esto en su 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 usar Ruby 1.8 desde la instalación del sistema.

richarddong
fuente
77
Probablemente sea una buena respuesta, pero por cierto obtengo otros errores al ejecutar ambos comandos (menciono en caso de que alguien quiera cubrir este escenario adicional): - rm: /System/Library/Frameworks/Ruby.framework/Versions/Current: Operación no permitida
PandaWood
44
Simplemente reinstalé homebrew con una versión nueva y comenzó a funcionar. Verifique la página de inicio de homebrew con el enlace para instalar, y cuando lo intente se quejará de que homebrew ya está instalado y le enseñará cómo desinstalarlo.
pertz
Entonces, desinstalar / reinstalar hizo que Homebrew volviera a funcionar para mí. También eliminó todo lo que había instalado, básicamente destrozando mi sistema. Entonces no es una gran solución.
Evan Knowles
Si obtiene errores con ruby ​​y está usando RVM, intente emitir rvm use systempara asegurarse de que está usando ruby ​​de Mac OS X cuando se ejecutabrew update
DavidJ
Tenga en cuenta que el Ruby predeterminado en las versiones recientes de OS X es 2.0, no 1.8.
bfontaine
82

Desinstalar homebrew:

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

Luego reinstalar

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

Advertencia: Este script eliminará: / Library / Caches / Homebrew / - thks benjaminsila

Odemolliens
fuente
1
Ejecuto una desinstalación de Homebrew y luego una reinstalación. Solucionado el problema. @OsTa ruby ​​-e "$ (curl -fsSL raw.githubusercontent.com/Homebrew/install/master/uninstall )" Advertencia: Este script eliminará: / Library / Caches / Homebrew /
BenJaminSila
3
Una especie de enfoque de escopeta, pero esto funcionó más fácilmente que tratar de administrar los permisos de los archivos ...
BenKarl
1
Trabajó para mí En un sistema actualizado a 10.12 (Sierra), después de la desinstalación / reinstalación pude ejecutar 'brew doctor' y seguí las instrucciones para solucionar algunos problemas de permisos. Funciona bien ahora
codeponge
Después de un bloqueo del disco duro, mi repositorio git subyacente se corrompió y, aunque el restablecimiento de git no funcionaría, la desinstalación / reinstalación sí. Sin embargo, tuve que reinstalar todos mis paquetes instalados.
bsumirak
26

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)"
Inanc Gumus
fuente
2
En caso de que se atasque después de esto en el ciclo de instalación / desinstalación de brew, use el siguiente enlace: github.com/Homebrew/homebrew/issues/44460
fortm
¿Recibió este mensaje intentando el segundo comando (que parece ser una indicación de que algo salió mal, aunque no es un error)? - El contenido actual de / usr / local es bin Cellar CODEOFCONDUCT.md CONTRIBUTING.md, etc. Frameworks git incluye lib Library LICENSE.txt opt ​​Qt4.7 README.md share SUPPORTERS.md var .git .gitignore
PandaWood
@PandaWood no, no lo hice. ¿Cuál es el contenido del mensaje de error que representa con 'este mensaje' en su comentario?
Inanc Gumus
@deeperx Todo después del "-". Al final, tuve que desinstalar brew y volver a instalar de nuevo
PandaWood
@PandaWood ¿Utiliza comas correctas? ¿Se puede copiar y pegar aquí directamente?
Inanc Gumus
24

Luego de actualizar a El Capitan, /usr/localtiene root:wheelderechos.

Cambie los derechos de nuevo al usuario usando:

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

y:

brew doctor && brew update

Esto me ayudó a hacer que Homebrew volviera a funcionar.

Josef Rysanek
fuente
2
¿No es bastante peligroso?
FRAGA
Los permisos /usr/localse modificaron en el sistema operativo por razones de seguridad, por lo tanto, solo porque haya "devuelto los derechos como antes" no significa que sea algo bueno.
leanne
8

Primero ejecuté:

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

Luego:

cd $(brew --prefix) && git fetch origin && git reset --hard origin/master
d0ping
fuente
1
FYI, mi instalación de Homebrew fue /usr/local/Homebrew/así que tuve que usar cd $(brew --prefix)/Homebrew.
Joshua Pinter el
3

Este problema debería solucionarse en la versión más reciente de Homebrew. Intente reinstalarlo, que se describe en la página de inicio de Homebrew .

Fred
fuente
1

Para mí, parece que le faltan archivos de encabezado para popen, que es una biblioteca del sistema C.

Compruebe si ha instalado xcode correctamente con las herramientas de línea de comandos y ha aceptado la licencia.

Consulte este hilo para obtener más información: Cómo instalar Xcode Command Line Tools

Dennis
fuente
0

Para restaurar su configuración Homebrew intente esto:

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