Beim Versuch, Homebrew mit zu aktualisieren, wurde brew update
der folgende Fehler angezeigt
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
Ich habe einen Blog-Beitrag von jemandem gefunden, der ein ähnliches Problem hatte, nachdem er Mountain Lion installiert hatte (was ich auch diese Woche getan habe). Er erklärt, wie er die in der Fehlermeldung genannten Dateien entfernt hat
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.
Unter der Annahme, dass diese Anweisungen korrekt sind (was ich vielleicht nicht annehmen sollte), habe ich versucht, diese Anweisungen zu befolgen und zu tun
$ cd $(brew --prefix)
$ rm cocot.rb
Es hieß jedoch "Datei existiert nicht", als ich versuchte, cocot.rb zu rm
Eine Sache, bei der ich mir nicht sicher bin, ist: cd $(brew --prefix)
Sind das genau die Wörter, die ich tippe, oder muss ich das Präfix durch etwas ersetzen? Die CD war erfolgreich, daher gehe ich davon aus, dass sie korrekt war. Sie hat mich in / usr / local verschoben, aber es gab keine Datei zum Entfernen. Inhalt von / usr / local sind
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
Weißt du auf jeden Fall, wie ich das 'Gebräu-Update' reparieren kann?
Update: Nachdem chown -R <your_username> $(brew --prefix)/.git
ich die Dateien gemäß den Anweisungen von favoretti entfernt und versucht habe , wurde der folgende Fehler ausgeführtbrew 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
Antworten:
quelle
git add .
gefolgt vongit stash
: Pcd $(brew --prefix)
und dem Zurücksetzen der Git-Stufe mitgit reset --hard HEAD
Ihremgit status
nicht das Arbeitsverzeichnis sauber zurückgegeben wird, müssen Sie möglicherweise auch den Status durch Ausführen bereinigengit clean -df
.git reset --hard HEAD
(was für mich nicht funktionieren würde) tat ichgit fetch --all
undgit reset --hard origin/master
Sie müssen Folgendes tun:
Und dann mach das
Grundsätzlich, um ein bisschen mehr zu erklären:
weist
cd
an, das Verzeichnis in das zu ändernde Verzeichnis zu ändernbrew --prefix
. Wenn Sie versuchen, einenbrew --prefix
Befehl auszuführen , sollten Sie Folgendes sehen:Der Befehl wäre also in diesem Fall ein Äquivalent von
cd /usr/local
. Neuerebrew
Versionen haben Formeln unter dem Installationspräfix undLibrary/Formula/
daher müssen Sie dort nach veralteten / geänderten Dateien suchen.Beachten Sie, dass, wenn Sie diese Formeln aus einem bestimmten Grund selbst geändert haben (z. B. beim Fixieren einer Version), diese Aktion sie auf die Standardformeln zurücksetzt und möglicherweise unerwünschte Effekte hervorruft.
@ TedPennings bemerkte in Kommentaren, dass dies für ihn funktionierte, aber seine Sequenz war:
my_username:admin
, dhsudo chown -R ted:admin $(brew --prefix)
git fetch origin
undgit reset --hard origin/master
quelle
sudo git reset --hard
, ein anderer und ein besserer Weg wäre, Berechtigungen zu reparieren und zu tunchown -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)
und dann die beiden obigen Git-Befehle ausführen,git fetch origin
undgit reset --hard origin/master
Dies wird durch einen alten Fehler im
update
Code verursacht, der längst behoben wurde. Die Art des Fehlers erfordert jedoch Folgendes:Wenn Sie sich
brew doctor
immer noch über nicht festgeschriebene Änderungen beschweren, führen Sie auch diesen Befehl aus:quelle
Hinweis: Die Schritte 2 und 3 haben bei mir funktioniert, da ich Schritt 5 vor 4 ausgeführt habe, bevor ich den Fehler erhalten habe. Das Brew-Update vor dem Ändern des Besitzers des Ordners verursachte das gesamte Problem.
quelle
/usr/local
mit anderen Berechtigungen installieren . Für mich war es MacPGP, das sich mit Root-Rechten installiert hat./usr/local
den Berechtigungen in Konflikt geraten war . Vielen Dank!Ich hatte ein ähnliches Problem, bei dem meine Brew-Paketbibliothek als Root-Benutzer heruntergeladen wurde und ich dann das Brew-Update nicht ausführen konnte, da sich git darüber beschwerte, dass die Datei nicht zusammengeführt werden konnte.
Die Lösung bestand darin: -
quelle
Das Zurücksetzen des Brührepositorys sollte der effizienteste Weg sein, wenn es Ihnen nichts ausmacht, mögliche Änderungen an Formeln zu verwerfen, die Sie möglicherweise angewendet haben:
quelle
Ich konnte dies auf meinem Computer beheben, indem ich die Schreibberechtigung für die Administratorgruppe (und das Setgid-Bit) für folgende Pfade hinzufügte:
Das s legt die Gruppen-ID bei der Ausführung fest, damit die Schreibberechtigungen nicht verloren gehen, wenn ein anderer Administrator Homebrew das nächste Mal aktualisiert oder aktualisiert.
Diese Antwort ist etwas unvollständig, da bei meinem Versuch
brew cleanup --force
ein Berechtigungsproblem auftritt, wenn Homebrew versucht, Inhalte in / usr / local / Cellar / zu entfernen. (Leider kann ich das momentan nicht weiter untersuchen.)quelle
Eine andere Möglichkeit ist, nur zu verwenden
git stash
.Der Befehl Brew Update führt eine aus
git pull
. Wenn also geänderte Dateien (oder sogar Dateiattribute, die mir beim rekursiven Ändern der Berechtigungen im Verzeichnis passiert sind) vorhanden sind, müssen Sie die Konflikte irgendwie beheben. Verwendengit stash
ist eine Möglichkeit; Änderungen werden übernommen und beiseite gelegt, sodass Sie effektiv zur zuletzt aktualisierten Repo-Version zurückkehren können. Der Homebrew-Speicherort ist standardmäßig/usr/local
und wird als Git-Repository installiert. Sie können nach einem.git
Ordner suchen , um sich selbst davon zu überzeugen. Ich schreibe ein Homebrew-Deinstallationsskript, das bald mit weiteren Informationen in meinem GitHub-Profil veröffentlicht wird.quelle
Hinweis - Verwenden Sie für USER den Befehl who, dh Ihren Benutzernamen
quelle
sudo chown -R $USER /usr/local/bin
wo das Hinzufügen der$
Positionen die USER env-Variable ist, die den aktuellen USER-Namen enthält.Dieser Ansatz ist möglicherweise einfacher als einige andere. Es involviert:
Schritte (mit Hinweisen für diejenigen, die Erklärungen wünschen):
Übersicht:
Soweit ich das beurteilen kann, ist die eigentliche Ursache für dieses Problem eine Änderung der Repo-URL. Es ist jetzt
brew
und warbrew.git
. (Vollständige aktuelle URL: https://github.com/Homebrew/brew )Hinweis 1: Mit diesem ersten Befehl gelangen Sie von einer beliebigen Stelle in Ihrer Dateistruktur in das richtige Verzeichnis. Die Verzeichnisstruktur unterscheidet sich für mich von den oben gezeigten (Mac OS 10.11.16), aber mit diesem Befehl sollten diese Unterschiede keine Rolle spielen.
Hinweis 2: Dieser zweite Befehl fügt einem neuen Alias die richtige Remote-URL hinzu. Ich tat dies nur für den Fall, dass dieser Ansatz nicht das erreichte, was ich wollte, und ich die vorherige Adresse erneut benötigte. Da die neue Fernbedienung funktioniert hat, werde ich jemanden einladen, sich dazu zu äußern, einfach die URL nach Herkunft zu ändern. Ich werde die Antwort gerne aktualisieren, um zu reflektieren, was für Sie funktioniert hat.
Hinweis 3: Dieser vierte Befehl hat genau das gewünschte Ergebnis: Er meldet eine große Anzahl von Aktualisierungen, einschließlich des besonders schönen Berichts "==> Migrated HOMEBREW_REPOSITORY to / usr / local / Homebrew!" (Hervorhebung ihrer).
quelle
brew update
.Dieser Beitrag hat mir nach dem Update auf El Capitan geholfen. In meinem Fall
chown
funktionierte es nicht ("zsh: Befehl nicht gefunden: chown"), also fügte Schritt 1 diese Zeile meiner .zshrc hinzu:export PATH="$PATH:/usr/sbin"
Ich hatte bereits einige der populäreren Antworten oben ausprobiert, daher bin ich mir ziemlich sicher, dass dies
git status
sauber war, als ich den kritischen Befehl aus dem Blog-Beitrag einfügte:sudo chown $(whoami):admin /usr/local && sudo chown -R $(whoami):admin /usr/local
quelle
Das sollte funktionieren.
quelle