Próbuję zaktualizować Homebrew o Wystąpił brew update
następujący błąd
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
Znalazłem post na blogu kogoś, kto doświadczył podobnego problemu po zainstalowaniu Mountain Lion (co zrobiłem również w tym tygodniu). Wyjaśnia, jak usunął pliki, o których mowa w komunikacie o błędzie
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.
Zakładając, że te instrukcje są prawidłowe (czego być może nie powinienem zakładać), próbowałem postępować zgodnie z tymi instrukcjami
$ cd $(brew --prefix)
$ rm cocot.rb
Jednak powiedziałem, że „plik nie istnieje”, gdy próbowałem wysłać plik rm cocot.rb
Nie jestem pewien, czy cd $(brew --prefix)
są to dokładnie te słowa, które wpisuję, czy też muszę zastąpić czymś przedrostek? cd był udany, więc zakładam, że był poprawny - przeniósł mnie do / usr / local, ale nie było pliku do usunięcia. Zawartość katalogu / usr / local to
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
W każdym razie, czy wiesz, jak mogę naprawić „aktualizację naparu”
Aktualizacja: Po usunięciu plików zgodnie z instrukcjami favoretti i próbie chown -R <your_username> $(brew --prefix)/.git
wystąpił następujący błądbrew 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
Odpowiedzi:
źródło
git add .
następujegit stash
: Pcd $(brew --prefix)
i zresetowaniu etapu git zgit reset --hard HEAD
twoimgit status
nie zwróci on czyszczenia katalogu roboczego, może być konieczne wyczyszczenie stanu przez uruchomieniegit clean -df
.git reset --hard HEAD
(co by mi nie pasowało), zrobiłemgit fetch --all
igit reset --hard origin/master
Musisz wykonać następujące czynności:
A potem wykonaj
Zasadniczo, aby wyjaśnić nieco więcej:
każe
cd
zmienić katalog na cokolwiekbrew --prefix
, co wyjdzie. Jeśli spróbujesz wykonaćbrew --prefix
polecenie, powinieneś zobaczyć coś w liniach:Zatem polecenie byłoby w tym przypadku równoważne z
cd /usr/local
. Nowszebrew
wersje mają formuły pod prefiksem instalacji iLibrary/Formula/
dlatego właśnie tam należy szukać tych nieaktualnych / zmienionych plików.Zauważ, że jeśli sam zmieniłeś te formuły z konkretnego powodu (np. Przypięcie wersji), to działanie przywróci je z powrotem do domyślnych i może powodować niepożądane efekty.
@TedPennings zauważył w komentarzach, że to działało dla niego, ale jego sekwencja była:
my_username:admin
, tzn.sudo chown -R ted:admin $(brew --prefix)
git fetch origin
igit reset --hard origin/master
źródło
sudo git reset --hard
, drugim i lepszym sposobem byłoby poprawienie uprawnień i zrobieniechown -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)
A następnie uruchomić dwie powyższe komendy gitgit fetch origin
igit reset --hard origin/master
Jest to spowodowane starym błędem w
update
kodzie, który już dawno został naprawiony. Jednak charakter błędu wymaga wykonania następujących czynności:Jeśli
brew doctor
nadal narzekasz na niezatwierdzone modyfikacje, uruchom również to polecenie:źródło
Uwaga: kroki 2 i 3 działały dla mnie, ponieważ wykonałem krok 5 przed 4, zanim dostałem błąd. Napar aktualizacja przed zmianą właściciela folderu spowodował cały problem.
źródło
/usr/local
z innymi uprawnieniami. Dla mnie to MacPGP zainstalował się z uprawnieniami roota./usr/local
uprawnieniami. Dzięki!Miałem podobny problem, gdy moja biblioteka pakietów parzenia została pobrana jako użytkownik root, a następnie nie mogłem uruchomić aktualizacji parzenia, ponieważ git narzekałby na brak możliwości scalenia pliku.
Rozwiązaniem było:
źródło
Zresetowanie repozytorium zaparzania powinno być najbardziej wydajnym sposobem, jeśli nie masz nic przeciwko odrzuceniu potencjalnych modyfikacji formuł, które mogły zostać zastosowane:
źródło
Udało mi się to naprawić na moim komputerze, dodając uprawnienia zapisu grupy administracyjnej (i bitu setgid) w tych ścieżkach:
S ustawia identyfikator grupy podczas wykonywania, dzięki czemu uprawnienia do zapisu nie zostaną utracone, gdy inny użytkownik admin zaktualizuje lub zaktualizuje Homebrew.
Ta odpowiedź jest nieco niepełna, ponieważ kiedy próbuję to zrobić,
brew cleanup --force
występuje problem z uprawnieniami, gdy Homebrew próbuje usunąć zawartość z katalogu / usr / local / Cellar /. (Niestety nie jestem w stanie zbadać tego dalej.)źródło
Inną opcją jest po prostu użyć
git stash
.Polecenie aktualizacji parzenia wykonuje polecenie
git pull
, więc jeśli są jakieś zmienione pliki (lub nawet atrybuty plików, które przydarzyły mi się, gdy rekursywnie zmieniłem uprawnienia w katalogu), musisz jakoś naprawić konflikty. Używaniegit stash
jest jednym ze sposobów; pobiera wszelkie zmiany i odkłada je na bok, dzięki czemu skutecznie powracasz do ostatniej zaktualizowanej wersji repo. „Lokalizacja” Homebrew jest domyślnie/usr/local
instalowana jako repozytorium git. Możesz poszukać.git
folderu, który sam zobaczysz. Piszę skrypt odinstalowujący homebrew, który wkrótce zostanie opublikowany na moim profilu GitHub z dodatkowymi informacjami.źródło
uwaga - dla USER użyj polecenia who, tj. nazwa użytkownika
źródło
sudo chown -R $USER /usr/local/bin
przypadku dodawania pozycji$
zmienna env USER, która przechowuje bieżącą nazwę USER.To podejście może być prostsze niż niektóre. To wymaga:
Kroki (z notatkami dla tych, którzy chcą wyjaśnień):
Omówienie:
z tego, co mogę powiedzieć, faktyczną przyczyną tego problemu jest zmiana adresu URL repozytorium. Teraz jest
brew
i byłobrew.git
. (Pełny aktualny adres URL: https://github.com/Homebrew/brew )Uwaga 1: To pierwsze polecenie zabierze Cię z dowolnego miejsca w strukturze plików do odpowiedniego katalogu. Struktura katalogów jest dla mnie inna niż te pokazane powyżej (Mac OS 10.11.16), ale przy tym poleceniu różnice te nie powinny mieć znaczenia.
Uwaga 2: To drugie polecenie dodaje poprawny zdalny adres URL do nowego aliasu; Zrobiłem to na wypadek, gdyby to podejście nie spełniło moich oczekiwań i ponownie potrzebowałem poprzedniego adresu. Ponieważ nowy pilot zadziałał, zaproszę kogoś innego do skomentowania po prostu zmiany adresu URL aliasu według pochodzenia. Z przyjemnością zaktualizuję odpowiedź, aby odzwierciedlić to, co zadziałało.
Uwaga 3: To czwarte polecenie ma dokładnie pożądany rezultat: zgłasza dużą liczbę aktualizacji, w tym szczególnie ładny raport „==> Migracja HOMEBREW_REPOSITORY do / usr / local / Homebrew!” (podkreślają swoje).
źródło
brew update
.Ten post pomógł mi po aktualizacji do El Capitan. W moim przypadku
chown
nie działał („zsh: polecenie nie znaleziono: chown”), więc krok 1 polegał na dodaniu tej linii do mojego .zshrc:export PATH="$PATH:/usr/sbin"
Próbowałem już kilku bardziej popularnych odpowiedzi powyżej, więc jestem prawie pewien, że
git status
do czasu, gdy wkleiłem krytyczne polecenie z posta na blogu, wszystko było czyste.sudo chown $(whoami):admin /usr/local && sudo chown -R $(whoami):admin /usr/local
źródło
To powinno działać.
źródło