Estoy obteniendo errores cuando intento realizar una 'actualización de cerveza'

4

Quiero instalar una gema. Las instrucciones sugieren fuertemente que use Homebrew para instalar las dependencias de gemas. No he usado mucho Homebrew, tal vez una vez hace años. Recuerdo que El Capitán ya lo tiene instalado. También recordé los comandos 'brew doctor' y 'brew update'. Primero ejecuté brew update y obtuve el siguiente error:

[~]$ brew update
warning: unable to unlink CONTRIBUTING.md: Permission denied
warning: unable to unlink SUPPORTERS.md: Permission denied
fatal: cannot create directory at '.github': Permission denied
Error: Failure while executing: git pull -q origin refs/heads/master:refs/remotes/origin/master

No tenía idea de los detalles de este error, así que decidí probar sudo brew update . Recibí el siguiente error.

[~]$ sudo brew update
sudo: /private/etc/sudoers.d is owned by uid 501, should be 0
Password:
/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 -- mach (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/extend/pathname.rb:2: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:3: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:15:in '<main>'

Entonces decidí ejecutar brew doctor . Recibí el siguiente error.

[~]$ brew doctor
/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 -- mach (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/extend/pathname.rb:2: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:3: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:15:in '<main>'

Supongo que la versión ruby 2.0.0 es la versión de Ruby que mi Mac Mini Server está usando para el sistema operativo. Estoy usando una versión más reciente de Ruby con Ruby Version Manager para mis aplicaciones Ruby on Rails.

La última vez que usé Homebrew fue con Mavericks o Mountain Lion. No tengo idea de dónde ir para resolver este problema. Ninguno de los documentos que he encontrado en línea aborda este error específico.

    
pregunta Pamela Cook - LightBe Corp 21.03.2016 - 23:45

4 respuestas

1

Por qué no hacer una lista de las cosas que podría haber instalado:

 brew list

Luego haga una copia de seguridad (por si acaso). Luego desinstale homebrew y posiblemente todo lo demás en / usr / local para obtener una limpieza instalar y un inicio limpio?

respondido por el bmike 21.03.2016 - 23:58
4

Tengo problemas similares y mi investigación sugiere restablecer tu versión local del repositorio de elaboración:

cd $(brew --prefix) && git fetch && git reset --hard origin/master

Estoy a punto de intentarlo yo mismo.

    
respondido por el Peter Whittaker 31.03.2016 - 21:20
3

Tal como se menciona aquí: enlace

Lo que funcionó para mí dado todos los errores fue

sudo chown -R $(whoami):admin /usr/local
cd $(brew --prefix) && git fetch origin && git reset --hard origin/master

Luego podría ejecutar comandos de brew nuevamente, como brew update y brew upgrade . (Y fwiw, como una alternativa a brew list si no funcionara y solo deseara una lista rápida, puede obtener una lista bruta simplemente haciendo ls -l cd $(brew --prefix)/Cellar )

    
respondido por el qix 11.04.2016 - 07:22
3

A partir de la respuesta anterior, ejecuta lo siguiente:

sudo chown $(whoami):admin /usr/local
cd $(brew --prefix) && git fetch origin && git reset --hard origin/master
brew update

Acabo de ejecutar eso en El Capitán 10.11.6, y la actualización terminó con el mensaje:

  

== > Migrando HOMEBREW_REPOSITORY (por favor espere) ...
  == > Se migró HOMEBREW_REPOSITORY a / usr / local / Homebrew!
  Homebrew ya no necesita tener la propiedad de / usr / local. Si lo deseas puedes
  devuelve / usr / local a su propiedad predeterminada con:

sudo chown root:wheel /usr/local

Si ve eso, ejecute el comando para devolver correctamente el cambio de permiso que realizó al principio a la normalidad.

    
respondido por el Marc L 02.11.2016 - 04:38

Lea otras preguntas en las etiquetas