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

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.


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.


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


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)"

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.


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

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 .


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


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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.