homebrew - cerveza - La actualización de Brew falló: los archivos del árbol de trabajo sin seguimiento se sobrescribirían mediante la combinación
homebrew windows (12)
Al intentar actualizar Homebrew con la brew update
, recibí 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 asumir), traté de seguir estas instrucciones y hacer
$ cd $(brew --prefix)
$ rm cocot.rb
Sin embargo, decía ''el archivo no existe'' cuando intenté grabar cocot.rb
Una cosa de la que no estoy seguro es el cd $(brew --prefix)
¿Son esas las palabras exactas que escribo o tengo que reemplazar el prefijo con algo? el CD fue exitoso, así que asumo que fue correcto - me movió a / usr / local, pero no hubo 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, ¿sabe cómo puedo arreglar la ''actualización de elaboración''?
Actualización: después de eliminar los archivos de acuerdo con las instrucciones de favoretti y de probar chown -R <your_username> $(brew --prefix)/.git
, obtuve el siguiente error al ejecutar brew 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
Este enfoque puede ser más simple que algunos. Implica:
- solucionando un problema de git para que pueda delegar la administración de cambios nuevamente.
- No hay movimientos manuales de archivos o directorios.
- No hay ajustes manuales de permisos de archivo o directorio.
Pasos (con notas para quienes quieran explicaciones):
cd $(brew --repository) // see Note 1 below
git remote add brew https://github.com/Homebrew/brew // see Note 2 below
git pull brew master // promising fast-forward report!
brew update // see Note 3 below
Visión general:
Por lo que puedo decir, la causa real de este problema es un cambio en la url de repositorio. Ahora es brew
y fue brew.git
. (Url completo y actualizado: 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 en caso de que este enfoque no lograra lo que quería y volviera a necesitar la dirección anterior. Dado que el nuevo control remoto funcionó, invitaré a otra persona a comentar sobre el simple cambio de la URL con el origen. Con gusto 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 "==> ¡HOMEBREW_REPOSITORY migrado a / usr / local / Homebrew!" (énfasis suyos).
Esto debería funcionar.
1. cd `brew --prefix`
2. git fetch origin
3. git reset --hard origin/master
4. sudo brew update
Esto se debe a un error antiguo en el código de update
que desde hace mucho tiempo se ha corregido. Sin embargo, la naturaleza del error requiere que hagas lo siguiente:
cd $(brew --repository)
git reset --hard FETCH_HEAD
Si brew doctor
aún se queja de modificaciones no confirmadas, también ejecute este comando:
cd $(brew --repository)
git clean -fd
Necesitas hacer lo siguiente:
cd $(brew --prefix)
rm Library/Formula/argp-standalone.rb
rm Library/Formula/cocot.rb
Y luego hacer el
git fetch origin
git reset --hard origin/master
brew update
Básicamente, para explicar un poco más:
cd $(brew --prefix)
le dice a cd
que cambie el directorio a cualquier brew --prefix
saldrá Si intenta ejecutar el comando brew --prefix
, debería ver algo en las líneas de:
brew --prefix
/usr/local
Entonces, el comando sería en este caso un equivalente de cd /usr/local
. Las versiones más recientes de brew
tienen fórmulas bajo su prefijo de instalación y Library/Formula/
, así que ahí es donde necesita buscar esos archivos desactualizados / modificados.
Tenga en cuenta que si usted mismo cambió esas fórmulas por una razón en particular (como fijar una versión), esta acción volverá a las predeterminadas y puede producir efectos no deseados.
@TedPennings señaló en los comentarios que esto funcionó para él, pero su secuencia fue:
-
my_username:admin
todo amy_username:admin
, es decir,sudo chown -R ted:admin $(brew --prefix)
- ejecute los dos comandos git anteriores,
git fetch origin
ygit reset --hard origin/master
Otra opción es simplemente usar git stash
.
El comando brew update realiza un 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), tiene que corregir los conflictos de alguna manera. Usar git stash
es una forma; toma todos los cambios y los pone a un lado para que vuelvas 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 carpeta .git
para ver por ti mismo. Estoy escribiendo un script de desinstalación de Homebrew para ser publicado en mi perfil de GitHub pronto con más información.
Pude arreglar esto en mi máquina agregando permisos de escritura de grupo de administración (y bit de setgid) en estas rutas:
sudo chmod -R g+ws /usr/local /Library/Caches/Homebrew
La s establece el ID de 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 trato de hacer una brew cleanup --force
hay un problema de permisos cuando Homebrew intenta eliminar contenido en / usr / local / Cellar /. (Desafortunadamente, no puedo investigar esto más en este momento).
Restablecer el repositorio de preparación debe ser la forma más eficiente si no te importa descartar posibles modificaciones en las fórmulas que hayas aplicado:
$ cd `brew --prefix`
$ git fetch origin
$ git reset --hard origin/master
$ brew cleanup --force
$ brew update
Tuve un problema similar en el que mi biblioteca de paquetes de preparación se descargó como usuario root y luego no pude ejecutar la actualización de preparación ya que git se quejaría de no poder combinar el archivo.
La solución fue hacer:
sudo chown -R <user> /usr/local/Library
Esta publicación me ayudó después de actualizar a El Capitán. En mi caso, chown
no funcionó ("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 de arriba, así que estoy bastante seguro de que el git status
estaba apareciendo limpio en el momento en que pegué el comando crítico de la publicación del blog:
sudo chown $(whoami):admin /usr/local && sudo chown -R $(whoami):admin /usr/local
$ cd $(brew --prefix)
$ git clean -fd
$ git reset --hard
$ sudo chown -R `whoami` `brew --prefix`
$ brew update
Nota: los pasos 2 y 3 funcionaron para mí, ya que hice el paso 5 antes de 4 antes de recibir el error. La actualización de brew antes de cambiar el propietario de la carpeta causó todo el problema.
cd $(brew --prefix)
git reset --hard HEAD
brew update
sudo chown -R USER /usr/local/bin
Nota: para USER use el comando who ie su nombre de usuario
sudo brew doctor