Demleme güncelleme başarısız oldu: izlenmeyen çalışan ağaç dosyalarının üzerine birleştirme ile


207

Homebrew'u güncellemeye çalışıyorum brew updateaşağıdaki hatayı aldım

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

Mountain Lion'ı yükledikten sonra benzer bir sorun yaşayan biri tarafından bir blog yazısı buldum (bu hafta da yaptım). Hata mesajında ​​atıfta bulunulan dosyaları nasıl kaldırdığını açıklar

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.

Bu talimatların doğru olduğunu varsayarsak (ki belki de varsaymamalıyım), bu talimatları izlemeye ve

    $ cd $(brew --prefix)
    $ rm cocot.rb

Ancak, cocot.rb'yi çalıştırmaya çalıştığımda 'dosya yok' dedi

Emin olmadığım şeylerden biri, yazdığım cd $(brew --prefix)tam kelimeler mi yoksa öneki bir şeyle değiştirmek zorunda mıyım? CD başarılı oldu, bu yüzden doğru olduğunu varsayıyorum - beni / usr / local içine taşındı, ancak kaldırılacak bir dosya yoktu. / Usr / local içeriği

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

Her halükarda, 'demlemek güncellemesini' nasıl düzeltebileceğimi biliyor musunuz?

Güncelleme: Favoretti'nin talimatlarına göre dosyaları kaldırdıktan ve denedikten chown -R <your_username> $(brew --prefix)/.gitsonra, aşağıdaki hatayı çalıştırıyorumbrew 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


github.com/Homebrew/homebrew-core - Homebrew Core'un resmi README.md'ini kontrol edin. Eski yanıtlardan birkaçı önerdiğinden izinleri ayarlamanıza gerek yoktur. Ayrıca geçerli resmi kaynak URL'sine yönlendirildiğinizi kontrol edin. Bu yanıtta daha fazla bilgi: stackoverflow.com/questions/14113427/…
Kay V

Yanıtlar:


279
cd $(brew --prefix)
git reset --hard HEAD
brew update

Orijinal soruya benzer bir sorun vardı, ancak farklı çakışan dosyalarla. Sorunu güncellememe ve çözmeme izin vermek için sadece sıfırlamak yeterliydi.
David

17
ayrıca şunu da git add .takip etmek isteyebilirsiniz git stash: P
mkk

Benim için çalışıyor. Kelimenin tam anlamıyla bu cd $ (brew --prefix) yazın
Saran

13
Demleme dizinine geçtikten cd $(brew --prefix)ve git aşamasını git reset --hard HEADsizin dizininizle sıfırladıktan sonra git status, çalışma dizini temizini döndürmezse, durumu çalıştırarak da temizlemeniz gerekebilir git clean -df.
Strand McCutchen

82
Yerine git reset --hard HEAD(benim için işe yaramaz olan), yaptım git fetch --allvegit reset --hard origin/master
Kevin.

360

Aşağıdakileri yapmanız gerekir:

cd $(brew --prefix)
rm Library/Formula/argp-standalone.rb
rm Library/Formula/cocot.rb

Ve sonra

git fetch origin
git reset --hard origin/master
brew update

Temel olarak, biraz daha açıklamak gerekirse:

cd $(brew --prefix)

cddizini çıktıkları brew --prefixher şeye değiştirmenizi söyler . brew --prefixKomutu çalıştırmayı denerseniz aşağıdaki satırlarda bir şey görmelisiniz:

brew --prefix
/usr/local

Yani komut bu durumda cd /usr/local . Yeni brewsürümlerin kurulum öneki altında formülleri vardır ve Library/Formula/bu nedenle bu eski / değiştirilmiş dosyaları aramanız gerekir.

Bu formülleri belirli bir nedenden dolayı (sürümü sabitlemek gibi) kendiniz değiştirirseniz, bu işlemin bunları varsayılan değerlere geri döndüreceğini ve istenmeyen efektler üretebileceğini unutmayın.

@TedPennings yorumlarda bunun onun için çalıştığını belirtti, ancak sırası şuydu:

  1. her şeyi my_username:admin, yanisudo chown -R ted:admin $(brew --prefix)
  2. yukarıdaki iki git komutunu çalıştırın,git fetch origin vegit reset --hard origin/master

1
git reset --hard origin / master yaptığımda, sadece kısmen işe yaramış gibi görünüyordu. Bu çıktı. hata: eski '.gitignore' bağlantısı kaldırılamıyor (İzin reddedildi) hata: dosya oluşturulamadı CONTRIBUTING.md (İzin reddedildi) Dosyaları teslim alma:% 100 (2493/2493), bitti. fatal: Dizin dosyası 'orijin / master' revizyonuna sıfırlanamadı.
BrainLikeADullPencil

3
Bu, izinlerinizin kesilmiş olduğu anlamına gelir. Bir yol çalıştırmak sudo git reset --hard, diğer ve daha iyi bir yol izinleri düzeltmek ve yapmak olacaktırchown -R <your_username> $(brew --prefix)/.git
favoretti

drwxrwxr-x 16 root admin 646 Dec 27 20:30 /usr/local/
Demleme önekimdeki

19
Bu çözüm benim için işleri düzeltti, ancak her şeyi kullanıcı adımma seçmek zorunda kaldım: admin, yani, sudo chown -R ted:admin $(brew --prefix)ve sonra iki git komutunu çalıştırdım git fetch originvegit reset --hard origin/master
Ted Pennings

2
@TedPennings: Harika! Olası ek bir adım olarak komutlarınıza cevabınızı ekleyeceğim.
favoretti

46

Bu, updatekodda uzun zamandır düzeltilen eski bir hatadan kaynaklanır . Bununla birlikte, hatanın doğası aşağıdakileri yapmanızı gerektirir:

cd $(brew --repository)
git reset --hard FETCH_HEAD

brew doctorTaranmamış değişikliklerden hala şikayet ediyorsanız , bu komutu da çalıştırın:

cd $(brew --repository)    
git clean -fd

3
Bu çözüm kabul edilen cevap almadığında benim için çalıştı.
JBCP

31
$ cd $(brew --prefix)
$ git clean -fd
$ git reset --hard
$ sudo chown -R `whoami` `brew --prefix`
$ brew update

Not: Hatayı almadan önce adım 4'ü 4'ten önce yaptığımdan 2 ve 3. adımlar benim için çalıştı. Demleme güncelleme klasörün sahibini değiştirmeden önce bütün sorunu neden oldu.


Bu benim için çalıştı. Bunun /usr/local, diğer izinlerle birlikte şeyler yükleyen diğer programlardan kaynaklanabileceğini eklemek istiyorum . Benim için kök ayrıcalıklarla yüklenen MacPGP'di.
Overbryd

1
Bu, Mac OS X 10.11'e yükseltme yaptıktan sonra /usr/localizinleri ile uğraştı ve benim için düzeltildi . Teşekkürler!
CletusW

İzinleri değiştirmeniz ve dizinleri manuel olarak taşımanız gerekmeyebileceğini belirtmek gerekir. Örneğin, stackoverflow.com/a/40599893/5440638 adresine bakın .
Kay V

6

Demlemek paket kütüphanemin kök kullanıcı olarak indirildiği benzer bir sorun vardı ve sonra git dosyayı birleştiremediğinden şikayetçi olarak demlemek güncellemesini çalıştıramadım.

Çözüm: -

sudo chown -R <user> /usr/local/Library

5

Uygulanmış formüllerde olası değişiklikleri atmak istemiyorsanız, demleme havuzunu sıfırlamak en etkili yol olmalıdır:

$ cd `brew --prefix`
$ git fetch origin
$ git reset --hard origin/master
$ brew cleanup --force
$ brew update

4

Bu yollarda yönetici grubu yazma (ve setgid bit) izni ekleyerek makinemde bunu düzeltmeyi başardım:

sudo chmod -R g+ws /usr/local /Library/Caches/Homebrew

S, farklı bir yönetici kullanıcı Homebrew'u bir sonraki güncelleme veya yükseltme işleminde yazma izinlerinin kaybolmaması için yürütme sırasında grup kimliğini ayarlar.

Bu cevap biraz eksik çünkü yapmaya brew cleanup --forceçalıştığımda Homebrew / usr / local / Cellar / içindeki içeriği kaldırmaya çalıştığında bir izin sorunu var. (Ne yazık ki şu anda bunu daha fazla araştıramıyorum.)


2
Görünüşe göre oldukça iyi çalışan Homebrew izinlerini düzeltmek için yazılmış popüler bir komut dosyası var. Kendim kullanmam gerekmiyordu; Değişiklikleri manuel olarak yaptım :) Ama bu başkalarına yardımcı olabilir: gist.github.com/rpavlik/768518
Steve Benner

1

Başka bir seçenek sadece kullanmaktır git stash.

Demlemek güncelleme komutu bir gerçekleştirir git pull, bu yüzden herhangi bir değiştirilmiş dosya (veya dizindeki izinleri tekrar tekrar değiştirdiğimde başıma gelen dosya öznitelikleri) varsa, çakışmaları bir şekilde düzeltmeniz gerekir. Kullanmanın git stashbir yolu vardır; tüm değişiklikleri alır ve bunları bir kenara koyar, böylece son güncellenen repo sürümüne etkili bir şekilde dönersiniz. Homebrew 'location' varsayılan olarak /usr/localve git deposu olarak kurulur. .gitKendiniz görmek için bir klasör arayabilirsiniz . Yakında daha fazla bilgi ile GitHub profilime gönderilecek bir homebrew kaldırma komut dosyası yazıyorum.


1
sudo chown -R USER /usr/local/bin

not - KULLANICI için, yani kullanıcı adınız olan komutu kullanın

sudo brew doctor

veya genelleştirmek için: sudo chown -R $USER /usr/local/binburada $geçerli USERname'in bulunduğu USER env değişkenini ekler.
Cometsong

1

Bu yaklaşım bazılarından daha basit olabilir. İçerir:

  • değişikliklerle ilgili yönetimi yeniden devredebilmeniz için bir git sorunu düzeltildi.
  • dosya veya dizinlerin manuel olarak taşınması gerekmez.
  • dosya veya dizin izinlerinde elle ayarlama yapılmaz.

Adımlar (açıklama isteyenler için notlarla birlikte):

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 

Genel Bakış:
Söyleyebileceğim kadarıyla, bu sorunun asıl nedeni repo url'sindeki bir değişikliktir. Şimdi brewve öyleydi brew.git. (Tam güncel URL: https://github.com/Homebrew/brew )

Not 1: Bu ilk komut sizi dosya yapınızın herhangi bir yerinden doğru dizine götürür. Dizin yapısı benim için yukarıda gösterilenlerden (Mac OS 10.11.16) farklıdır, ancak bu komutla bu farklar önemli olmamalıdır.

Not 2: Bu ikinci komut, yeni bir takma ada doğru uzak URL'yi ekler; Bu yaklaşımın istediğimi yapamaması durumunda bunu yaptım ve önceki adrese tekrar ihtiyacım vardı. Yeni uzaktan kumanda çalıştığından, başka birini basitçe kökene göre takma ad alan URL'yi değiştirmeye yorum yapmaya davet edeceğim. Sizin için neyin işe yaradığını yansıtmak için cevabı mutlu bir şekilde güncelleyeceğim.

Not 3: Bu dördüncü komut tam olarak istenen sonuca sahiptir: "==> HOMEBREW_REPOSITORY / usr / local / Homebrew!" Klasörüne özellikle ilişkin güzel rapor da dahil olmak üzere çok sayıda güncelleme bildirir. (onların vurgu).


Bu, çalışırken 504 hataları aldığınızda çalışır brew update.
Omnilord

0

Bu yazı El Capitan'a güncelledikten sonra bana yardımcı oldu. Benim durumumda, chown("zsh: komut bulunamadı: chown") çalışma değildi, bu yüzden adım 1 bu satırı benim .zshrc ekliyordu:

export PATH="$PATH:/usr/sbin"

Zaten yukarıdaki daha popüler cevapların birkaçını denedim, bu yüzden git statusblog gönderisinden kritik komuta yapıştırdım zaman temiz geldiğinden eminim :

sudo chown $(whoami):admin /usr/local && sudo chown -R $(whoami):admin /usr/local


0

Bu çalışmalı.

1. cd `brew --prefix`
2. git fetch origin
3. git reset --hard origin/master
4. sudo brew update

Fwiw, sudo, homebrew kullanırken kesinlikle önerilmez. Sudo kullanarak bir komut girdiğinizde, bu soruya verilen diğer cevapların aşağı oylarına ve uyarı homebrew'un yardımcı olduğuna dikkat edin. @ A5308Y ayrıca sudo'nun neden kötü olduğu hakkında SSS'ye bir bağlantı sağlar; bu SSS'nin en son sürümü github.com/Homebrew/brew/blob/master/docs/… adresindedir . Adımlarınızı sudo olmadan takip etmeyi denediniz mi?
Kay V
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.