web-dev-qa-db-fra.com

Mise à jour brew: les fichiers d'arbre de travail non suivis suivants seraient écrasés par la fusion:

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
368
Tyler DeWitt

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

  1. Allez dans ce dossier [première commande] qui devrait également mettre à jour les autorisations (si pas voir ci-dessous)
  2. Récupère l'Origin [deuxième commande], ce qui signifie mettre à jour votre version LOCAL de la branche distante de breuvage
  3. Réinitialisation matérielle [3ème commande] basée sur la branche principale REMOTE (qui utilise également vos autorisations actuelles).

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 .

737
chris Frisina

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 ?

107
Joe Holloway

J'ajoute mon expérience personnelle, car cela semble un peu plus sûr que ce qui était proposé en 2012:

  1. Exécutez brew doctor.
  2. 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.

  3. 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.

  4. 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.

11
furins

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
0
Haris Krajina

Cette approche peut être plus simple que certains. Ça implique:

  • résoudre un problème git afin que vous puissiez déléguer la gestion des modifications.
  • pas de déplacement manuel de fichiers ou de répertoires.
  • aucun ajustement manuel des autorisations de fichiers ou de répertoires.

É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).

0
Kay V