En essayant de mettre à jour Homebrew avec brew update
j'ai l'erreur suivante
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
J'ai trouvé un article de blog par quelqu'un qui a rencontré un problème similaire après avoir installé Mountain Lion (ce que j'ai fait cette semaine également). Il explique comment il a supprimé les fichiers mentionnés dans le message d'erreur
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.
En supposant que ces instructions sont correctes (ce que je ne devrais peut-être pas supposer), j'ai essayé de suivre ces instructions et de faire
$ cd $(brew --prefix)
$ rm cocot.rb
Cependant, il a dit 'le fichier n'existe pas' quand j'ai essayé de rm cocot.rb
Une chose dont je ne suis pas sûr est que ce cd $(brew --prefix)
sont les mots exacts que je tape ou dois-je remplacer le préfixe par quelque chose? le cd a réussi, donc je suppose qu'il était correct - il m'a déplacé dans / usr / local, mais il n'y avait aucun fichier à supprimer. Le contenu de / usr / local est
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 tout cas, savez-vous comment je peux corriger la «mise à jour de brassage»
Mise à jour: Après avoir supprimé les fichiers selon les instructions de favoretti et essayé chown -R <your_username> $(brew --prefix)/.git
, j'ai eu l'erreur suivante en cours d'exécutionbrew 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
Réponses:
la source
git add .
suivi degit stash
: Pcd $(brew --prefix)
et réinitialisé l'étape git avecgit reset --hard HEAD
votregit status
ne retourne pas le nettoyage du répertoire de travail, vous devrez peut-être également nettoyer l'état en exécutantgit clean -df
.git reset --hard HEAD
(ce qui ne fonctionnerait pas pour moi), je l'ai faitgit fetch --all
etgit reset --hard origin/master
Vous devez effectuer les opérations suivantes:
Et puis faites le
Fondamentalement, pour expliquer un peu plus:
indique
cd
de changer le répertoire en tout ce quibrew --prefix
sortira. Si vous essayez d'exécuter labrew --prefix
commande, vous devriez voir quelque chose dans les lignes de:La commande serait donc dans ce cas un équivalent de
cd /usr/local
. Lesbrew
versions plus récentes ont des formules sous son préfixe d'installation etLibrary/Formula/
, c'est donc là que vous devez rechercher ces fichiers obsolètes / modifiés.Notez que si vous avez modifié ces formules vous-même pour une raison particulière (comme épingler une version), cette action les ramènera à celles par défaut et peut produire des effets indésirables.
@TedPennings a noté dans les commentaires que cela fonctionnait pour lui, mais sa séquence était:
my_username:admin
, c'est- -diresudo chown -R ted:admin $(brew --prefix)
git fetch origin
etgit reset --hard origin/master
la source
sudo git reset --hard
, l'autre et une meilleure façon serait de corriger les autorisations et fairechown -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)
puis exécuter les deux commandes git ci-dessus,git fetch origin
etgit reset --hard origin/master
Cela est dû à un ancien bogue dans le
update
code qui a depuis longtemps été corrigé. Cependant, la nature du bogue nécessite que vous procédiez comme suit:Si vous vous
brew doctor
plaignez toujours de modifications non validées, exécutez également cette commande:la source
Remarque: les étapes 2 et 3 ont fonctionné pour moi car j'ai effectué l'étape 5 avant 4 avant de recevoir l'erreur. La mise à jour de l'infusion avant de changer le propriétaire du dossier a causé tout le problème.
la source
/usr/local
avec d'autres autorisations. Pour moi, c'est MacPGP qui s'est installé avec les privilèges root./usr/local
les autorisations de. Merci!J'ai eu un problème similaire où ma bibliothèque de packages de brassage a été téléchargée en tant qu'utilisateur root, puis je n'ai pas pu exécuter la mise à jour de brassage car git se plaindrait de ne pas pouvoir fusionner le fichier.
La solution était de faire: -
la source
La réinitialisation du référentiel de brassage devrait être le moyen le plus efficace si cela ne vous dérange pas d'éliminer les modifications potentielles sur les formules que vous pourriez avoir appliquées:
la source
J'ai pu résoudre ce problème sur ma machine en ajoutant l'autorisation d'écriture (et le bit setgid) du groupe admin sur ces chemins:
Le s définit l'ID de groupe lors de l'exécution afin que les autorisations d'écriture ne soient pas perdues la prochaine fois qu'un autre utilisateur administrateur mettra à jour ou mettra à niveau Homebrew.
Cette réponse est quelque peu incomplète car lorsque j'essaie de le faire,
brew cleanup --force
il y a un problème d'autorisations lorsque Homebrew essaie de supprimer du contenu dans / usr / local / Cellar /. (Malheureusement, je ne suis pas en mesure d'enquêter davantage pour le moment.)la source
Une autre option consiste à simplement utiliser
git stash
.La commande brew update effectue un
git pull
, donc s'il y a des fichiers modifiés (ou même des attributs de fichier, ce qui m'est arrivé lorsque j'ai changé les autorisations dans le répertoire de manière récursive), vous devez en quelque sorte résoudre les conflits. L'utilisationgit stash
est un moyen; il prend toutes les modifications et les met de côté pour que vous reveniez efficacement à la dernière version mise à jour du référentiel. L'emplacement de Homebrew est par défaut/usr/local
et il s'installe comme un référentiel git. Vous pouvez chercher un.git
dossier pour voir par vous-même. J'écris un script de désinstallation homebrew qui sera bientôt publié sur mon profil GitHub avec plus d'informations.la source
note - pour l'utilisateur, utilisez la commande qui, c'est-à-dire votre nom d'utilisateur
la source
sudo chown -R $USER /usr/local/bin
où l'ajout des positions$
la variable env USER, qui contient le nom de l'utilisateur actuel.Cette approche peut être plus simple que certaines. Ça implique:
Étapes (avec des notes pour ceux qui veulent des explications):
Vue d'ensemble:
D'après ce que je peux dire, la cause réelle de ce problème est un changement dans l'URL du dépôt. C'est maintenant
brew
et c'étaitbrew.git
. (URL complète et à jour: https://github.com/Homebrew/brew )Remarque 1: Cette première commande vous emmène de n'importe où dans la structure de vos fichiers vers le bon répertoire. La structure du répertoire est différente pour moi de ce que les autres montrent ci-dessus (Mac OS 10.11.16), mais avec cette commande, ces différences ne devraient pas avoir d'importance.
Remarque 2: cette deuxième commande ajoute l'URL distante correcte à un nouvel alias; Je l'ai fait juste au cas où cette approche n'atteindrait pas ce que je voulais et j'avais besoin de l'adresse précédente à nouveau. Depuis que la nouvelle télécommande a fonctionné, j'inviterai quelqu'un d'autre à commenter simplement en changeant l'URL aliasée par origine. Je mettrai volontiers à jour la réponse pour refléter ce qui a fonctionné pour vous.
Remarque 3: Cette quatrième commande a exactement le résultat souhaité: elle rapporte un grand nombre de mises à jour, y compris le rapport particulièrement agréable de "==> HOMEBREW_REPOSITORY migré vers / usr / local / Homebrew!" (mettre l'accent sur le leur).
la source
brew update
.Ce message m'a aidé après la mise à jour vers El Capitan. Dans mon cas,
chown
ne fonctionnait pas ("zsh: commande introuvable: chown"), donc l'étape 1 ajoutait cette ligne à mon .zshrc:export PATH="$PATH:/usr/sbin"
J'avais déjà essayé plusieurs des réponses les plus populaires ci-dessus, donc je suis à peu près sûr que cela
git status
revenait net au moment où j'ai collé dans la commande critique du billet de blog:sudo chown $(whoami):admin /usr/local && sudo chown -R $(whoami):admin /usr/local
la source
Cela devrait fonctionner.
la source