2011-03-26 27 views
23

Uso Homebrew como administrador de paquetes. Corro este comando:Homebrew genera dos advertencias

brew update 

Pero tengo este error:

error: unable to unlink old 'bin/brew' (Permission denied)

Error: Failed while executing git pull http://github.com/mxcl/homebrew.git master

a correr de nuevo bajo sudo:

/usr/local/Library/Homebrew/brew.h.rb:1: warning: already initialized constant FORMULA_META_FILES
/usr/local/Library/Homebrew/brew.h.rb:2: warning: already initialized constant PLEASE_REPORT_BUG error: The following untracked working tree files would be overwritten by checkout:

.gitignore
;;; big list goes here ;;;;

Y ahora, todos los comandos de cerveza genera estas advertencias:

/usr/local/Library/Homebrew/brew.h.rb:1: warning: already initialized constant FORMULA_META_FILES
/usr/local/Library/Homebrew/brew.h.rb:2: warning: already initialized constant PLEASE_REPORT_BUG

Cualquier idea wha t esta yendo mal?

Respuesta

42

Parece que la mitad se actualizó antes de que desapareciera, y ahora está en mal estado. Es posible que desee

cd /usr/local && git reset --hard HEAD 

Eso debería restablecer todos los archivos git-controlado (por ejemplo homebrew) de vuelta a sus versiones prístinas. Es posible que necesite sudo ese comando git. Después de eso, puede intentar corregir los permisos como desee (esto puede ser tan simple como ejecutar sudo chown -R yourname:staff /usr/local si ningún archivo en ese directorio debe ser propiedad de otra persona).

+0

Entonces, ¿es un problema de Git y no de elaboración? Lo siento, no estoy familiarizado con Git. – Chiron

+3

No es un problema de git. Se trata de un problema de permisos encontrado al usar git para actualizar la instalación de brew. –

0

Tuve un problema similar hoy, esto me apuntó en la dirección correcta, pero el reinicio no fue suficiente. No estoy seguro de cómo, pero de alguna manera tuve bastantes archivos sin seguir, me di cuenta después de ejecutar estado de git.

finalmente hice una copia de todos los archivos (sólo para estar seguro) y los eliminan, después de que la actualización de cerveza trabajó como un encanto

1

Asegúrese de que/usr/local/bin tiene permisos de escritura para el usuario cuenta.

+0

Funcionó para mí, "bin /" tenía un número de UID desconocido :) –