Brewの更新に失敗しました:追跡されていない作業ツリーファイルがマージによって上書きされます


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

ただし、rm cocot.rbを実行しようとしたときに「ファイルが存在しません」と表示されていました

よくわからないことの1つは、cd $(brew --prefix)入力した単語は正確ですか、それとも接頭辞を何かに置き換える必要があるのでしょうか。CDは成功したので、私はそれが正しいと想定しています-私を/ usr / localに移動しましたが、削除するファイルがありませんでした。/ usr / localの内容は

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

とにかく、「醸造の更新」を修正する方法を知っていますか

更新:favorettiの指示に従ってファイルを削除し、試行した後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/...
ケイV

回答:


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

元の質問と同様の問題がありましたが、競合するファイルが異なりました。リセットするだけで問題を更新および解決できました。
デビッド

17
あなたもやりたいかもしれませんgit add .が続くgit stashP:
MKK

私のために働く。文字通りこのCDを入力$(brew --prefix)
Saran

13
で醸造ディレクトリに変更した後、場合cd $(brew --prefix)とでgitの舞台をリセットするgit reset --hard HEADあなたのgit statusクリーンな作業ディレクトリを返しません。あなたはまた、実行することにより、状態をクリーンアップする必要があるかもしれませんgit clean -df
Strand McCutchen 14

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つまり、すべてをchownします。sudo chown -R ted:admin $(brew --prefix)
  2. 上記の二つのgitコマンドを実行し、git fetch originそしてgit reset --hard origin/master

1
私がgit reset --hard origin / masterを実行したとき、部分的にしか機能しないようでした。これが出力です。エラー:古い「.gitignore」のリンクを解除できません(権限が拒否されました)エラー:ファイルを作成できませんCONTRIBUTING.md(権限が拒否されました)ファイルのチェックアウト:100%(2493/2493)、完了しました。致命的:インデックスファイルをリビジョン 'origin / master'にリセットできませんでした。
BrainLikeADullPencil 2013年

3
それはあなたの許可が台無しにされていることを意味します。一つの方法は、実行するようになりsudo git reset --hard、他のより良い方法は、修正の権限になるとどうなるchown -R <your_username> $(brew --prefix)/.git
favoretti

:これはここのように私の醸造プレフィックスの外観上のどのようなアクセス許可であるdrwxrwxr-x 16 root admin 646 Dec 27 20:30 /usr/local/
favoretti

19
このソリューションは、私のために物事を固定したが、私は自分のユーザー名にchownをすべてに持っていた:管理者、すなわち、sudo chown -R ted:admin $(brew --prefix)その後、上記の二つのgitコマンドを実行し、git fetch originそしてgit reset --hard origin/master
テッドペニングを

2
@TedPennings:かっこいい!追加のステップとして、コマンドを回答に追加します。
favoretti

46

これは、update長い間修正されていたコードの古いバグが原因です。ただし、バグの性質上、次のことを行う必要があります。

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

brew doctorコミットされていない変更についてまだ不満がある場合は、次のコマンドも実行します。

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

3
受け入れられた答えがうまくいかなかったとき、この解決策は私のために働きました。
JBCP 2014年

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

注:エラーが発生する前に4の前にステップ5を実行したため、ステップ2と3はうまくいきました。醸造更新フォルダの所有者を変更する前には、全体の問題を引き起こしました。


これでうまくいきました。これは/usr/local、他の権限で他のものをインストールする他のプログラムが原因である可能性があることを付け加えたいと思います。私にとって、ルート権限でインストールされたのはMacPGPでした。
オーバーブリード

1
これにより、Mac OS X 10.11にアップグレードした後、/usr/localの権限がめちゃくちゃになってしまいました。ありがとう!
CletusW 2015年

権限を変更したり、ディレクトリを手動で移動したりする必要がない場合があることに注意してください。たとえば、stackoverflow.com / a / 40599893/5440638を参照してください。
Kay V

6

似たような問題がありましたが、brewパッケージライブラリがrootユーザーとしてダウンロードされましたが、gitがファイルをマージできないと文句を言うため、brew updateを実行できませんでした。

解決策は次のとおりでした:-

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

5

適用した可能性のある数式の潜在的な変更を破棄しても構わない場合は、brewリポジトリをリセットするのが最も効率的な方法です。

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

4

これらのパスに管理グループの書き込み(およびsetgidビット)権限を追加することで、私のマシンでこれを修正することができました。

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

sは実行時にグループIDを設定するため、別の管理ユーザーが次にHomebrewを更新またはアップグレードしたときに書き込み権限が失われることはありません。

brew cleanup --forceHomebrewが/ usr / local / Cellar /のコンテンツを削除しようとすると、アクセス許可の問題が発生するため、この回答はやや不完全です。(残念ながら、現時点ではこれを詳しく調査することはできません。)


2
Homebrewの権限を修正するために作成された人気のあるスクリプトがあり、これは明らかに非常にうまく機能しています。自分で使う必要はありません。私は手動で変更を行いました:)しかし、これは他の人を助けるかもしれません:gist.github.com/rpavlik/768518
スティーブ

1

別のオプションは、を使用することgit stashです。

brew updateコマンドはを実行するgit pullため、変更されたファイル(または、ディレクトリのアクセス許可を再帰的に変更したときに発生したファイル属性)がある場合は、なんらかの方法で競合を修正する必要があります。使用git stashは一方向です。変更があればそれを脇に置いて、最後に更新されたレポバージョンに効果的に戻すことができます。Homebrewの「場所」はデフォルトで/usr/localあり、gitリポジトリとしてインストールされます。.git自分の目で確認できるフォルダを探すことができます。自作のアンインストールスクリプトを書いているところです。詳細はGitHubプロファイルに掲載されます。


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

注-USERの場合はwhoコマンド、つまりユーザー名

sudo brew doctor

または一般化する: sudo chown -R $USER /usr/local/binここで$、現在のUSERnameを保持するUSER環境変数を追加します。
Cometsong 2016年

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 

概要:
私が言えることから、この問題の実際の原因は、リポジトリURLの変更です。それは今でbrewあり、でしたbrew.git。(完全な最新のURL:https : //github.com/Homebrew/brew

注1:この最初のコマンドは、ファイル構造の任意の場所から正しいディレクトリに移動します。私にとって、ディレクトリ構造は上に示したもの(Mac OS 10.11.16)とは異なりますが、このコマンドでは、これらの違いは問題になりません。

注2:この2番目のコマンドは、正しいリモートURLを新しいエイリアスに追加します。このアプローチで期待どおりの結果が得られず、以前のアドレスが再び必要になった場合に備えて、そうしました。新しいリモートが機能したので、オリジンによってエイリアスされたURLを単に変更することについてコメントするよう他の人を招待します。何がうまくいったかを反映するために、喜んで回答を更新します。

注3:この4番目のコマンドは、まさに望ましい結果をもたらします。「==> Migrated HOMEBREW_REPOSITORY to / usr / local / Homebrew!」という特に素晴らしいレポートを含め、多数の更新を報告します。(強調彼らのもの)。


これは、実行中に504エラーが発生した場合に機能しますbrew update
Omnilord 2017年

0

El Capitanにアップデートした後、この投稿は私を助けました。私の場合、chown動作していなかったため( "zsh:コマンドが見つかりません:chown")、ステップ1でこの行を.zshrcに追加しました。

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は自作を使用するときはお勧めしません。この質問に対する他の回答への反対票と、sudoを使用してコマンドを入力したときに警告の自作が役立つことに注意してください。@ A5308Yには、sudoが悪い理由に関するFAQへのリンクもあります。そのFAQの最新バージョンはgithub.com/Homebrew/brew/blob/master/docs/…にあり ます。sudoを使用せずに手順に従ってみましたか?
Kay V
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.