J'ai essayé de lancer brew update
et j'obtiens une erreur. Mes modifications locales seraient perdues si je fusionnais. J'ai essayé de valider mes changements locaux (je ne me souviens pas d'en avoir fait, mais ça fait longtemps), et ça a empiré les choses.
Voici la sortie:
MBP:Library User$ Sudo brew update
error: The following untracked working tree files would be overwritten by merge:
Library/Aliases/fastcgi
Library/Aliases/htop
Library/Aliases/nodejs
Library/Aliases/ocio
Library/Aliases/oiio
Library/Aliases/pgrep
Library/Aliases/pkill
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-man
Library/Contributions/cmds/brew-mirror-check.rb
Library/Contributions/cmds/brew-missing.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.commit.html.erb
Library/Contributions/cmds/brew-test-bot.css
Library/Contributions/cmds/brew-test-bot.index.html.erb
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/install_homebrew.rb
Library/Formula/abcl.rb
Library/Formula/abyss.rb
Library/Formula/akka.rb
Library/Formula/apollo.rb
Library/Formula/appledoc.rb
Library/Formula/arangodb.rb
Library/Formula/autoconf.rb
Library/Formula/automake.rb
Library/Formula/avidemux.rb
Library/Formula/bind.rb
Library/Formula/bsdconv.rb
Library/Formula/bsdmake.rb
Library/Formula/camellia.rb
Library/Formula/cbmbasic.rb
Library/Formula/cdo.rb
Library/Formula/checkstyle.rb
Library/Formula/cifer.rb
Library/Formula/clhep.rb
Library/Formula/collada-dom.rb
Library/Formula/crash.rb
Library/Formula/crossroads.rb
Library/Formula/css-crush.rb
Library/Formula/curlftpfs.rb
Library/Formula/Dart.rb
Library/Formula/dasm.rb
Library/Formula/dfc.rb
Library/Formula/di.rb
Library/Formula/dsniff.rb
Library/Formula/dupx.rb
Library/Formula/dwatch.rb
Library/Formula/eprover.rb
Library/Formula/ext2Fuse.rb
Library/Formula/ezlupdate.rb
Library/Formula/f3.rb
Library/Formula/fastx_toolkit.rb
Library/Formula/fceux.rb
Library/Formula/findbugs.rb
Library/Formula/freerdp.rb
Library/Formula/funcoeszz.rb
Library/Formula/fwknop.rb
Library/Formula/gabedit.rb
Library/Formula/gbdfed.rb
Library/Formula/gconf.rb
Library/Formula/git-encrypt.rb
Library/Formula/glm.rb
Library/Formula/gmap-gsnap.rb
Library/Formula/gnu-Arch.rb
Library/Formula/gnunet.rb
Library/Formula/gobby.rb
Library/Formula/gptfdisk.rb
Library/Formula/griffon.rb
Library/Formula/grok.rb
Library/Formula/gtk-chtheme.rb
Library/Formula/gtkglextmm.rb
Library/Formula/gtmess.rb
Library/Formula/hg-flow.rb
Library/Formula/hqx.rb
Library/Formula/htop-osx.rb
Library/Formula/htpdate.rb
Library/Formula/imap-uw.rb
Library/Formula/iozone.rb
Library/Formula/ipbt.rb
Library/Formula/ipe.rb
Library/Formula/ispc.rb
Library/Formula/ispell.rb
Library/Formula/jigdo.rb
Library/Formula/jing.rb
Library/Formula/jless.rb
Library/Formula/jpeginfo.rb
Library/Formula/konoha.rb
Library/Formula/legit.rb
Library/Formula/libcouchbase.rb
Library/Formula/libcuefile.rb
Library/Formula/libextractor.rb
Library/Formula/libglademm.rb
Library/Formula/libgtextutils.rb
Library/Formula/libinfinity.rb
Library/Formula/libkate.rb
Library/Formula/libqalculate.rb
Library/Formula/libqglviewer.rb
Library/Formula/libreplaygain.rb
Library/Formula/libtool.rb
Library/Formula/libvbucket.rb
Library/Formula/libvo-aacenc.rb
Library/Formula/libxmi.rb
Library/Formula/lifelines.rb
Library/Formula/makeicns.rb
Library/Formula/mathgl.rb
Library/Formula/meld.rb
Library/Formula/mesalib-glw.rb
Library/Formula/minisat.rb
Library/Formula/minuit2.rb
Library/Formula/mobile-Shell.rb
Library/Formula/movgrab.rb
Library/Formula/mp3cat.rb
Library/Formula/mpich2.rb
Library/Formula/mrfast.rb
Library/Formula/musepack.rb
Library/Formula/ndiff.rb
Library/Formula/net6.rb
Library/Formula/nrpe.rb
Library/Formula/nuttcp.rb
Library/Formula/oath-toolkit.
Updating aa07533..3f070ef
Aborting
Error: Failed while executing git pull Origin refs/heads/master:refs/remotes/Origin/master
N'oubliez pas d'aller chercher l'origine !!!
$ cd /usr/local
$ git fetch Origin
$ git reset --hard Origin/master
Explication, pour les intéressés:
Ce qui se passe, c’est que vous essayez de mettre à jour le brassin, mais que le brassin lui-même n’est pas à jour (probable), que les autorisations ont été modifiées via une mise à jour du système d’exploitation (également probable), ou que le brassin est légèrement corrompu (peu probable). Étant donné que brew est un rapport Git, vous devez mettre à jour ou réinitialiser brew vers la version de branche principale. brew [par défaut] se trouve dans le dossier /usr/local
, de sorte que vous
Vous pouvez également chown
la première commande si vous êtes dans un profil autre que Sudo ou admin.
$ Sudo chown -R `whoami` /usr/local
$ cd /usr/local
$ git reset --hard Origin/master
Pour comprendre la réinitialisation de git, jetez un oeil à cet article .
J'ai eu un problème similaire il y a quelques semaines en essayant de mettre à jour une ancienne installation homebrew. Ce faisant:
git reset --hard Origin/master
dans /usr/local
l'a corrigé pour moi.
Il semble que d'autres personnes ont également eu ce problème. Avez-vous examiné l'une des solutions de contournement proposées ici ?
J'ajoute mon expérience personnelle, car cela semble un peu plus sûr que ce qui était proposé en 2012:
brew doctor
.Si vous obtenez l'avertissement suivant:
Warning: The /usr/local directory is not writable.
courir:
Sudo chown -R `whoami` /usr/local
pour résoudre les problèmes d'autorisations (comme suggéré également par Chris Frisina). Finalement, relancez brew doctor
pour vous assurer que l’avertissement est parti.
Maintenant, vous devriez avoir un
Warning: You have uncommitted modifications to Homebrew
qui peut être résolu par
cd /usr/local/Library && git stash && git clean -d -f
comme suggéré par Dr.Brew lui-même. La commande bloque les modifications non validées afin que vous puissiez revenir en arrière et les récupérer si nécessaire. Cela me semblait plus sûr que git reset --hard Origin/master
.
Si vous le souhaitez, vérifiez le guide de dépannage officiel si les étapes suggérées ici et par d'autres utilisateurs SO ne résolvent pas votre problème.
Réponse similaire, mais si vous avez des fichiers qui ne sont plus suivis, vous avez besoin d’une étape supplémentaire pour que /usr/local
soit lancé.
git fetch Origin
git clean -f
git reset --hard Origin/master
Cette approche peut être plus simple que certains. Ça implique:
Étapes (avec des notes pour ceux qui veulent des explications):
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
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 était brew.git
. (URL complète à jour: https://github.com/Homebrew/brew )
Remarque 1: Cette première commande vous emmène de n'importe où dans votre structure de fichiers vers le bon répertoire. La structure des répertoires est différente pour moi de ce que d’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 que j'avais de nouveau besoin de l'adresse précédente. Depuis que la nouvelle télécommande a fonctionné, j'inviterai quelqu'un d'autre à commenter la modification de l'URL alias par Origin. Je mettrai volontiers à jour la réponse pour refléter ce qui a fonctionné pour vous.
Note 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!". (emphase les leurs).