ब्रू अपडेट विफल: अप्रयुक्त कार्य ट्री फ़ाइलों को मर्ज द्वारा अधिलेखित कर दिया जाएगा


207

Homebrew को अपडेट करने की कोशिश के साथ brew updateमुझे निम्न त्रुटि मिली

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

मुझे किसी ऐसे व्यक्ति द्वारा एक ब्लॉग पोस्ट मिली, जिसने माउंटेन लायन स्थापित करने के बाद इसी तरह की समस्या का अनुभव किया (जो मैंने इस सप्ताह भी किया था)। वह बताता है कि उसने त्रुटि संदेश में संदर्भित फ़ाइलों को कैसे हटाया

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.

उन निर्देशों को सही मानते हुए (जो शायद मुझे नहीं मानने चाहिए), मैंने इन निर्देशों का पालन करने और करने की कोशिश की

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

हालाँकि, यह कहा कि 'फ़ाइल मौजूद नहीं है' जब मैंने cocot.rb को rm करने की कोशिश की

एक बात जो मुझे निश्चित नहीं है कि cd $(brew --prefix)क्या वे सटीक शब्द हैं जो मैं टाइप करता हूं या क्या मुझे किसी चीज़ के साथ उपसर्ग को बदलना है? सीडी सफल था, इसलिए मैं इसे सही मान रहा हूं - यह मुझे / usr / स्थानीय में ले गया, लेकिन हटाने के लिए कोई फ़ाइल नहीं थी। / Usr / स्थानीय की सामग्री हैं

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

किसी भी दर पर, क्या आप जानते हैं कि मैं 'काढ़ा अद्यतन' कैसे ठीक कर सकता हूँ

अद्यतन: फ़ेवरेट्टी के निर्देशों के अनुसार फ़ाइलों को हटाने और कोशिश करने के बाद chown -R <your_username> $(brew --prefix)/.git, मुझे निम्नलिखित त्रुटि मिलीbrew 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 की आधिकारिक README.md जांचें। कुछ पुराने उत्तरों की अनुशंसा के अनुसार अनुमतियों को समायोजित करने की आवश्यकता नहीं होनी चाहिए। यह भी जांचें कि आपको वर्तमान आधिकारिक स्रोत url की ओर इशारा किया गया है। इस उत्तर में अधिक जानकारी: stackoverflow.com/questions/14113427/…
Kay V

जवाबों:


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

मूल प्रश्न के समान मुद्दा था, लेकिन अलग-अलग परस्पर विरोधी फ़ाइलों के साथ। बस रीसेट करना मुझे अपडेट करने और समस्या को हल करने के लिए पर्याप्त था।
डेविड

17
आप इसके git add .बाद भी करना चाहते हैं git stash: P
mkk

मेरे लिये कार्य करता है। वस्तुतः यह सीडी $ (काढ़ा
सारण

13
यदि, के साथ काढ़ा निर्देशिका को बदलने cd $(brew --prefix)और git reset --hard HEADअपने साथ गिट चरण को रीसेट करने के git statusबाद काम करने वाली निर्देशिका को वापस नहीं किया जाता है, तो आपको दौड़कर राज्य को साफ करने की भी आवश्यकता हो सकती है git clean -df
स्ट्रैंड मेककचेन

82
इसके बजाय git reset --hard HEAD(जो मेरे लिए काम नहीं करेगा), मैंने किया git fetch --allऔरgit reset --hard origin/master
केविन।

360

आपको निम्नलिखित करने की आवश्यकता है:

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

और फिर करते हैं

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

मूल रूप से, थोड़ा और समझाने के लिए:

cd $(brew --prefix)

cdजो कुछ भी brew --prefixआउटपुट करेगा उसे डायरेक्टरी बदलने के लिए कहता है । यदि आप brew --prefixकमांड निष्पादित करने का प्रयास करते हैं, तो आपको कुछ लाइनों में देखना चाहिए:

brew --prefix
/usr/local

तो कमांड इस मामले में एक बराबर होगा cd /usr/local। नए brewसंस्करणों में इसकी स्थापना उपसर्ग के तहत सूत्र होते हैं और Library/Formula/, इसीलिए आपको उन पुरानी / परिवर्तित फ़ाइलों को देखने की आवश्यकता होती है।

ध्यान दें, यदि आपने उन सूत्रों को किसी विशेष कारण से बदल दिया है (जैसे किसी संस्करण को पिन करना) तो यह क्रिया उन्हें डिफ़ॉल्ट रूप से वापस कर देगी और अवांछित प्रभाव उत्पन्न कर सकती है।

@TedPennings ने टिप्पणी की कि यह उनके लिए काम करता है, लेकिन उनका क्रम था:

  1. सब कुछ my_username:admin, यानीsudo chown -R ted:admin $(brew --prefix)
  2. ऊपर दो git कमांड चलाएं, git fetch originऔरgit reset --hard origin/master

1
जब मैंने जीआईटी रीसेट किया था - मूल / मास्टर, यह केवल आंशिक रूप से काम करने के लिए लग रहा था। यह आउटपुट है। त्रुटि: पुरानी '.gitignore' को अनलिंक करने में असमर्थ '(अनुमति अस्वीकृत) त्रुटि: फ़ाइल बनाने में असमर्थ CONTRIBUTING.md (अनुमति अस्वीकृत) फ़ाइलों की जाँच करना: 100% (2493/2493), किया गया। घातक: 'मूल / मास्टर' को संशोधित करने के लिए अनुक्रमणिका फ़ाइल को रीसेट नहीं किया जा सका।
ब्रेन लाइकडुलपेंसिल

3
इसका मतलब है कि आपकी अनुमतियां खराब हो गई हैं। एक रास्ता दौड़ना होगा sudo git reset --hard, दूसरा और एक बेहतर तरीका यह होगा कि आप परमिशन को ठीक करें और करेंchown -R <your_username> $(brew --prefix)/.git
इष्ट

इस तरह से मेरे काढ़ा उपसर्ग देखो पर अनुमतियाँ इस प्रकार हैं:drwxrwxr-x 16 root admin 646 Dec 27 20:30 /usr/local/
पक्षपात

19
इस समाधान ने मेरे लिए चीजें तय कर दीं, लेकिन मुझे अपने उपयोगकर्ता नाम के लिए सबकुछ धोखा देना पड़ा: व्यवस्थापक, यानी, sudo chown -R ted:admin $(brew --prefix)और फिर ऊपर दो git कमांड चलाएं, git fetch originऔरgit reset --hard origin/master
Ted Pennings

2
@ टेडपेंनिंग: कूल! मैं आपके आदेशों को संभावित अतिरिक्त चरण के रूप में उत्तर में जोड़ दूँगा।
favoretti

46

यह updateकोड में एक पुराने बग के कारण होता है जो लंबे समय से तय किया गया है। हालाँकि, बग की प्रकृति के लिए आवश्यक है कि आप निम्न कार्य करें:

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

यदि brew doctorअभी भी अनधिकृत संशोधनों के बारे में शिकायत है, तो भी इस आदेश को चलाएं:

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

3
इस समाधान ने मेरे लिए काम किया जब स्वीकृत उत्तर नहीं था।
JBCP

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

नोट: चरण 2 और 3 ने मेरे लिए काम किया क्योंकि मैंने त्रुटि मिलने से पहले चरण 4 से पहले चरण 5 किया था। काढ़ा अद्यतन फ़ोल्डर का स्वामी बदलने से पहले पूरी समस्या का कारण बना।


इसने मेरे लिए काम किया। मैं यह जोड़ना चाहूंगा कि यह अन्य कार्यक्रमों के कारण /usr/localअन्य अनुमतियों के साथ सामान स्थापित करने के कारण हो सकता है । मेरे लिए यह MacPGP था जिसने खुद को रूट विशेषाधिकारों के साथ स्थापित किया।
ओवरब्रिज

1
मैक ओएस एक्स 10.11 में अपग्रेड होने के बाद मेरे लिए यह तय हो गया /usr/local। धन्यवाद!
CletusW

यह ध्यान देने योग्य है कि आपको अनुमतियों को बदलने और निर्देशिकाओं को मैन्युअल रूप से स्थानांतरित करने की आवश्यकता नहीं हो सकती है। उदाहरण के लिए stackoverflow.com/a/40599893/5440638 देखें ।
काय वी

6

मेरे पास एक ऐसा ही मुद्दा था जहां मेरे ब्रू पैकेज लाइब्रेरी को रूट उपयोगकर्ता के रूप में डाउनलोड किया गया था और फिर मैं ब्रू अपडेट को चलाने में सक्षम नहीं था क्योंकि गिट फाइल को मर्ज करने में सक्षम नहीं होने की शिकायत करेगा।

समाधान करना था: -

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

5

यदि आपके द्वारा लागू किया जा सकता है, तो सूत्रों पर संभावित संशोधनों को छोड़ने का बुरा न मानें तो भृंग भंडार को रीसेट करना सबसे कारगर तरीका होना चाहिए:

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

4

मैं इन रास्तों पर एडमिन ग्रुप राइट (और सेटगिट बिट) की अनुमति को जोड़कर अपनी मशीन पर इसे ठीक करने में सक्षम था:

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

S समूह आईडी को निष्पादन पर सेट करता है ताकि अगली बार किसी अन्य उपयोगकर्ता के अपडेट या अपग्रेड Homebrew को लिखने की अनुमति न मिले।

यह उत्तर कुछ अधूरा है क्योंकि जब मैं करने की कोशिश करता हूं brew cleanup --forceतो एक अनुमति समस्या होती है जब Homebrew / usr / स्थानीय / तहखाने / में सामग्री को हटाने की कोशिश करता है। (दुर्भाग्य से मैं इस समय इसकी जांच करने में सक्षम नहीं हूं।)


2
Homebrew अनुमतियों को ठीक करने के लिए एक लोकप्रिय स्क्रिप्ट लिखी गई है जो स्पष्ट रूप से काफी अच्छी तरह से काम करती है। मुझे इसे स्वयं उपयोग करने की आवश्यकता नहीं है; मैंने मैन्युअल रूप से बदलाव किए :) :) लेकिन इससे दूसरों को मदद मिल सकती है: gist.github.com/rpavlik/768518
स्टीव

1

एक अन्य विकल्प सिर्फ उपयोग करना है git stash

काढ़ा अद्यतन कमांड एक करता है git pull, इसलिए यदि कोई बदली हुई फाइलें (या यहां तक ​​कि फ़ाइल विशेषताएँ भी हैं, जो मुझे तब हुईं जब मैंने निर्देशिका में अनुमतियों को पुनरावर्ती रूप से बदल दिया) आपको किसी तरह संघर्षों को ठीक करना होगा। उपयोग करना git stashएक तरीका है; यह कोई भी परिवर्तन लेता है और उन्हें अलग रखता है ताकि आप प्रभावी रूप से अंतिम अपडेट किए गए रेपो संस्करण पर वापस लौट सकें। Homebrew 'स्थान' डिफ़ॉल्ट रूप से है /usr/localऔर यह एक गिट रिपॉजिटरी के रूप में स्थापित होता है। आप अपने लिए एक .gitफ़ोल्डर देख सकते हैं। मैं अधिक जानकारी के साथ जल्द ही मेरे GitHub प्रोफाइल पर पोस्ट होने के लिए होमब्रेव अनइंस्टॉल स्क्रिप्ट लिख रहा हूं।


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

ध्यान दें - USER के लिए आदेश का उपयोग करें जिसे आपका उपयोगकर्ता नाम

sudo brew doctor

या सामान्यीकरण करने के लिए: sudo chown -R $USER /usr/local/binजहाँ $USER env वैरिएबल के पॉज़िट्स को जोड़ना, जो कि वर्तमान USERname को रखता है।
कॉमटॉन्ग

1

यह दृष्टिकोण कुछ की तुलना में सरल हो सकता है। इसमें शामिल है:

  • एक git समस्या को ठीक करना ताकि आप उसमें होने वाले परिवर्तनों का प्रबंधन फिर से कर सकें।
  • फ़ाइलों या निर्देशिकाओं की कोई मैनुअल चाल नहीं।
  • फ़ाइल या निर्देशिका अनुमतियों का कोई मैनुअल समायोजन नहीं।

कदम (स्पष्टीकरण के लिए उन लोगों के लिए नोट्स के साथ):

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 

अवलोकन:
मैं जो बता सकता हूं, उससे इस मुद्दे का वास्तविक कारण रेपो यूआरएल में बदलाव है। अभी brewऔर है brew.git। (पूर्ण अप-टू-डेट url: https://github.com/Homebrew/brew )

नोट 1: यह पहला कमांड आपको आपकी फ़ाइल संरचना में कहीं से भी सही निर्देशिका में ले जाता है। दूसरों के ऊपर (मैक ओएस 10.11.16) दिखाने की तुलना में मेरे लिए निर्देशिका संरचना अलग है, लेकिन इस कमांड के साथ, उन अंतरों से कोई फर्क नहीं पड़ना चाहिए।

नोट 2: यह दूसरा आदेश एक नया उपनाम में सही दूरस्थ url जोड़ता है; मैंने ऐसा तभी किया जब यह दृष्टिकोण वह पूरा नहीं हुआ जो मैं चाहता था और मुझे फिर से पिछले पते की आवश्यकता थी। चूंकि नए रिमोट ने काम किया है, इसलिए मैं किसी और को टिप्पणी करने के लिए आमंत्रित करूंगा, ताकि मूल रूप से उर को बदल दिया जाए। मैं खुशी से आपके लिए काम करने वाले उत्तर को अपडेट करूंगा।

नोट 3: इस आगे के कमांड में वांछित परिणाम है: यह बड़ी संख्या में अपडेट की रिपोर्ट करता है, जिसमें विशेष रूप से "==> माइग्रेटेड HOMEBREW_REPOSITORY से / usr / लोकल / होमब्रेव!" (जोर उनका)।


यह तब काम करता है जब आपको दौड़ते समय 504 त्रुटियां मिलती हैं brew update
ओमनीलॉर्ड

0

इस पोस्ट ने एल कैपिटन को अपडेट करने के बाद मेरी मदद की। मेरे मामले में, chownकाम नहीं कर रहा था ("zsh: कमांड नहीं मिला: chown"), इसलिए चरण 1 इस लाइन को मेरे .zrc से जोड़ रहा था:

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

मैंने पहले से ही ऊपर दिए गए अधिक लोकप्रिय उत्तरों में से कई की कोशिश की है, इसलिए मुझे पूरा यकीन है कि git statusजब तक मैं ब्लॉग पोस्ट से महत्वपूर्ण कमांड में चिपकाता हूं, तब तक यह साफ हो रहा था:

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


0

यह काम करना चाहिए।

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

Fwiw, sudo होमबॉव का उपयोग करते समय दृढ़ता से हतोत्साहित किया जाता है। इस सवाल के अन्य उत्तरों पर डाउन-वोट पर ध्यान दें, साथ ही चेतावनी होमबॉव आपको सूडो का उपयोग करते हुए कमांड दर्ज करने में मदद करता है। @ A5308Y यह भी अक्सर पूछे जाने वाले प्रश्न के लिए एक लिंक प्रदान करता है कि सूडो खराब क्यों है; उस FAQ का नवीनतम संस्करण github.com/Homebrew/brew/blob/master/docs/… पर है, क्या आपने sudo के बिना अपने चरणों का पालन करने की कोशिश की है?
काय वी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.