Intentando actualizar Homebrew con brew update
el siguiente error
error: The following untracked working tree files would be overwrittenby merge:
Library/Formula/argp-standalone.rb
Library/Formula/cocot.rb
Please move or remove them before you can merge.
Aborting
Updating e088818..5909e2c
Error: Failed while executing git pull origin refs/heads/master:refs/remotes/origin/master
Encontré una publicación de blog de alguien que experimentó un problema similar después de haber instalado Mountain Lion (lo que hice esta semana también). Explica cómo eliminó los archivos mencionados en el mensaje de error.
I removed these files:
$ cd $(brew --prefix)
$ rm cocot.rb
However, removing these files didn't help with the brew update. Instead I had to manually update brew through git:
$ cd $(brew --prefix)
$ git fetch origin
$ git reset --hard origin/master
$ brew update
Already up-to-date.
Suponiendo que esas instrucciones son correctas (lo que tal vez no debería suponer), traté de seguir estas instrucciones y hacer
$ cd $(brew --prefix)
$ rm cocot.rb
Sin embargo, decía 'el archivo no existe' cuando intenté rm cocot.rb
Una cosa de la que no estoy seguro es cd $(brew --prefix)
¿Son esas las palabras exactas que escribo o tengo que reemplazar el prefijo por algo? el cd fue exitoso, así que supongo que fue correcto, me movió a / usr / local, pero no había ningún archivo para eliminar. Los contenidos de / usr / local son
Cellar clamXav git mysql var Library doc heroku mysql-5.5.15-osx10.6-x86_64 README.md etc include rvm bin foreman lib share
En cualquier caso, ¿sabes cómo puedo solucionar la 'actualización de preparación'?
Actualización: después de eliminar los archivos de acuerdo con las instrucciones de favoretti e intentarlo chown -R <your_username> $(brew --prefix)/.git
, recibí el siguiente errorbrew update
error: The following untracked working tree files would be overwritten by merge:
Library/Aliases/gperftools
Library/Aliases/hashdeep
Library/Aliases/htop
Library/Aliases/nodejs
Library/Aliases/ocio
Library/Aliases/oiio
Library/Aliases/pgrep
Library/Aliases/pkill
Library/Aliases/qt4
Library/Aliases/twolame
Library/Aliases/wxwidgets
Library/Contributions/cmds/brew-aspell-dictionaries
Library/Contributions/cmds/brew-beer.rb
Library/Contributions/cmds/brew-dirty.rb
Library/Contributions/cmds/brew-graph
Library/Contributions/cmds/brew-grep
Library/Contributions/cmds/brew-leaves.rb
Library/Contributions/cmds/brew-linkapps.rb
Library/Contributions/cmds/brew-ls-taps.rb
Library/Contributions/cmds/brew-man
Library/Contributions/cmds/brew-md5-to-sha1
Library/Contributions/cmds/brew-mirror-check.rb
Library/Contributions/cmds/brew-pull.rb
Library/Contributions/cmds/brew-readall.rb
Library/Contributions/cmds/brew-server
Library/Contributions/cmds/brew-services.rb
Library/Contributions/cmds/brew-switch.rb
Library/Contributions/cmds/brew-test-bot.rb
Library/Contributions/cmds/brew-tests.rb
Library/Contributions/cmds/brew-unpack.rb
Library/Contributions/cmds/brew-which.rb
Library/Contributions/cmds/git
Library/Contributions/cmds/svn
Library/ENV/4.3/apr-1-config
Library/ENV/4.3/bsdmake
Library/ENV/4.3/c++
Library/ENV/4.3/c89
Library/ENV/4.3/c99
Library/ENV/4.3/cc
Library/ENV/4.3/clang
Library/ENV/4.3/clang++
Library/ENV/4.3/cpp
Library/ENV/4.3/g++
Library/ENV/4.3/gcc
Library/ENV/4.3/git
Library/ENV/4.3/i686-apple-darwin11-llvm-g++-4.2
Library/ENV/4.3/i686-apple-darwin11-llvm-gcc-4.2
Library/ENV/4.3/ld
Library/ENV/4.3/llvm-g++
Library/ENV/4.3/llvm-g++-4.2
Library/ENV/4.3/llvm-gcc
Library/ENV/4.3/llvm-gcc-4.2
Library/ENV/4.3/make
Library/ENV/4.3/mig
Library/ENV/4.3/sed
Library/ENV/4.3/svn
Library/ENV/4.3/xcrun
Library/ENV/libsuperenv.rb
Library/ENV/pkgconfig/leopard/libcrypto.pc
Library/ENV/pkgconfig/leopard/libcurl.pc
Library/ENV/pkgconfig/mountain_lion/libcurl.pc
Library/ENV/pkgconfig/mountain_lion/libexslt.pc
Library/ENV/pkgconfig/mountain_lion/libxml-2.0.pc
Library/ENV/pkgconfig/mountain_lion/libxslt.pc
Library/Formula/abcl.rb
Library/Formula/abcmidi.rb
Library/Formula/aiccu.rb
Library/Formula/akka.rb
Library/Formula/alac.rb
Library/Formula/alure.rb
Library/Formula/appledoc.rb
Library/Formula/arangodb.rb
Library/Formula/argp-standalone.rb
Library/Formula/argtable.rb
Library/Formula/autopano-sift-c.rb
Library/Formula/avian.rb
Library/Formula/avidemux.rb
Library/Formula/avro-cpp.rb
Library/Formula/aws-cloudsearch.rb
Library/Formula/aws-sns-cli.rb
Library/Formula/backupninja.rb
Library/Formula/bact.rb
Library/Formula/bam.rb
Library/Formula/basex.rb
Library/Formula/berkeley-db4.rb
Library/Formula/bind.rb
Library/Formula/blazeblogger.rb
Library/Formula/bochs.rb
Library/Formula/boost149.rb
Library/Formula/bsdconv.rb
Library/Formula/bsdmake.rb
Library/Formula/buildapp.rb
Library/Formula/bup.rb
Library/Formula/byacc.rb
Library/Formula/cadubi.rb
Library/Formula/camellia.rb
Library/Formula/casperjs.rb
Library/Formula/ccextractor.rb
Library/Formula/cconv.rb
Library/Formula/cdo.rb
Library/Formula/cdpr.rb
Library/Formula/cgvg.rb
Library/Formula/checkstyle.rb
Library/Formula/chordii.rb
Library/Formula/chruby.rb
Library/Formula/cifer.rb
Library/Formula/clhep.rb
Library/Formula/cntlm.rb
Library/Formula/cocot.rb
Library/Formula/cogl.rb
Library/Formula/collada-dom.rb
Library/Formula/crash.rb
Library/Formula/crossroads.rb
Library/Formula/crosstool-ng.rb
Library/Formula/css-crush.rb
Library/Formula/csync.rb
Library/Formula/ctemplate.rb
Library/Formula/curlftpfs.rb
Library/Formula/cutter.rb
Library/Formula/cvsutils.rb
Library/Formula/darkstat.rb
Library/Formula/darner.rb
Library/Formula/dart.rb
Library/Formula/dasm.rb
Library/Formula/debianutils.rb
Library/Formula/dfc.rb
Library/Formula/dgtal.rb
Library/Formula/dhcping.rb
Library/Formula/di.rb
Library/Formula/dmtx-utils.rb
Library/Formula/drip.rb
Library/Formula/dsniff.rb
Library/Fo
Aborting
Updating e088818..c1fbc29
Error: Failed while executing git pull origin refs/heads/master:refs/remotes/origin/master
Respuestas:
fuente
git add .
seguido degit stash
: Pcd $(brew --prefix)
y restablecer la etapa git congit reset --hard HEAD
sugit status
no devuelve la limpieza del directorio de trabajo, es posible que también necesite limpiar el estado ejecutandogit clean -df
.git reset --hard HEAD
(que no funcionaría para mí), lo hicegit fetch --all
ygit reset --hard origin/master
Debes hacer lo siguiente:
Y luego haz el
Básicamente, para explicar un poco más:
le dice
cd
que cambie el directorio a lobrew --prefix
que salga. Si intenta ejecutar elbrew --prefix
comando, debería ver algo en líneas de:Entonces el comando sería en este caso un equivalente de
cd /usr/local
. Lasbrew
versiones más nuevas tienen fórmulas bajo su prefijo de instalación yLibrary/Formula/
, por lo tanto, es allí donde debe buscar esos archivos obsoletos / modificados.Tenga en cuenta que si cambió esas fórmulas usted mismo por una razón particular (como fijar una versión), esta acción las revertirá a las predeterminadas y puede producir efectos no deseados.
@TedPennings señaló en comentarios que esto funcionó para él, pero su secuencia fue:
my_username:admin
, es decir,sudo chown -R ted:admin $(brew --prefix)
git fetch origin
ygit reset --hard origin/master
fuente
sudo git reset --hard
, otra y una forma mejor sería arreglar los permisos y hacerlochown -R <your_username> $(brew --prefix)/.git
drwxrwxr-x 16 root admin 646 Dec 27 20:30 /usr/local/
sudo chown -R ted:admin $(brew --prefix)
y luego ejecutar los dos comandos git anteriores,git fetch origin
ygit reset --hard origin/master
Esto es causado por un error antiguo en el
update
código que hace tiempo se ha solucionado. Sin embargo, la naturaleza del error requiere que haga lo siguiente:Si
brew doctor
aún se queja de modificaciones no confirmadas, ejecute también este comando:fuente
Nota: los pasos 2 y 3 me funcionaron desde que hice el paso 5 antes que el 4 antes de recibir el error. La actualización de preparación antes de cambiar el propietario de la carpeta causó todo el problema.
fuente
/usr/local
con otros permisos. Para mí fue MacPGP que se instaló con privilegios de root./usr/local
los permisos. ¡Gracias!Tuve un problema similar en el que mi biblioteca de paquetes de brew se descargó como usuario root y luego no pude ejecutar brew update ya que git se quejaría de no poder fusionar el archivo.
La solución era hacer: -
fuente
Restablecer el repositorio de preparación debería ser la forma más eficiente si no le importa descartar posibles modificaciones en las fórmulas que podría haber aplicado:
fuente
Pude arreglar esto en mi máquina agregando permisos de escritura de grupo de administración (y bit de ajuste) en estas rutas:
El s establece la identificación del grupo en la ejecución para que los permisos de escritura no se pierdan la próxima vez que un usuario administrador diferente actualice o actualice Homebrew.
Esta respuesta es algo incompleta porque cuando intento hacerlo
brew cleanup --force
hay un problema de permisos cuando Homebrew intenta eliminar contenido en / usr / local / Cellar /. (Desafortunadamente no puedo investigar esto más por el momento).fuente
Otra opción es simplemente usar
git stash
.El comando brew update realiza una
git pull
, por lo que si hay algún archivo modificado (o incluso atributos de archivo, que me sucedió cuando cambié los permisos en el directorio de forma recursiva), de alguna manera debe solucionar los conflictos. Usargit stash
es unidireccional; toma los cambios y los deja a un lado para que pueda volver a la última versión actualizada del repositorio. La 'ubicación' de Homebrew es por defecto/usr/local
y se instala como un repositorio git. Puedes buscar una.git
carpeta para ver por ti mismo. Estoy escribiendo un script de desinstalación homebrew para publicarlo en mi perfil de GitHub pronto con más información.fuente
nota: para el USUARIO, use el comando quién, es decir, su nombre de usuario
fuente
sudo chown -R $USER /usr/local/bin
donde se agregan las$
posiciones de la variable env USER, que contiene el nombre de usuario actual.Este enfoque puede ser más simple que algunos. Implica:
Pasos (con notas para aquellos que quieren explicaciones):
Descripción general:
Por lo que puedo decir, la causa real de este problema es un cambio en la URL del repositorio. Es ahora
brew
y fuebrew.git
. (URL completa y actualizada: https://github.com/Homebrew/brew )Nota 1: este primer comando lo lleva desde cualquier lugar de su estructura de archivos al directorio correcto. La estructura del directorio es diferente para mí de lo que otros muestran arriba (Mac OS 10.11.16), pero con este comando, esas diferencias no deberían importar.
Nota 2: este segundo comando agrega la URL remota correcta a un nuevo alias; Lo hice por si este enfoque no lograba lo que quería y necesitaba la dirección anterior nuevamente. Dado que el nuevo control remoto funcionó, invitaré a otra persona a comentar simplemente cambiando la URL con alias por origen. Felizmente actualizaré la respuesta para reflejar lo que funcionó para usted.
Nota 3: Este cuarto comando tiene exactamente el resultado deseado: informa una gran cantidad de actualizaciones, incluido el informe particularmente bueno de "==> Migrado HOMEBREW_REPOSITORY a / usr / local / Homebrew!" (énfasis suyo).
fuente
brew update
.Esta publicación me ayudó después de actualizar a El Capitan. En mi caso,
chown
no funcionaba ("zsh: comando no encontrado: chown"), por lo que el paso 1 fue agregar esta línea a mi .zshrc:export PATH="$PATH:/usr/sbin"
Ya había intentado varias de las respuestas más populares anteriores, así que estoy bastante seguro de que
git status
estaba claro cuando pegué el comando crítico de la publicación del blog:sudo chown $(whoami):admin /usr/local && sudo chown -R $(whoami):admin /usr/local
fuente
Esto debería funcionar.
fuente