web-dev-qa-db-ja.com

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

brew updateでHomebrewを更新しようとすると、次のエラーが表示されます

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をインストールした後、同様の問題を経験した人によるブログ投稿を見つけました(今週もそうしました)。彼は、エラーメッセージで言及されているファイルを削除した方法を説明します。

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しようとしたときに「ファイルが存在しません」と表示されました

よくわからないことの1つはcd $(brew --prefix)です。これらの単語は正確に入力するのですか、それとも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

とにかく、「brew update」を修正する方法を知っていますか

アップデート: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
206
cd $(brew --prefix)
git reset --hard HEAD
brew update
279

以下を行う必要があります。

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. 上記の2つのgitコマンド、git fetch Originおよびgit reset --hard Origin/masterを実行します
361
favoretti

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

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

brew doctorがまだコミットされていない変更について文句を言う場合は、次のコマンドも実行します。

cd $(brew --repository)    
git clean -fd
46
Eric Wu
$ cd $(brew --prefix)
$ git clean -fd
$ git reset --hard
$ Sudo chown -R `whoami` `brew --prefix`
$ brew update

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

31
Ron D.

私のbrewパッケージライブラリがルートユーザーとしてダウンロードされ、gitがファイルをマージできないと文句を言うのでbrew updateを実行できなかった同様の問題がありました。

解決策は次のとおりです。

Sudo chown -R <user> /usr/local/Library
6
demesne

醸造リポジトリをリセットすることは、あなたが適用されたかもしれないフォーミュラの潜在的な修正を破棄することを気にしないなら、最も効率的な方法であるはずです:

$ cd `brew --prefix`
$ git fetch Origin
$ git reset --hard Origin/master
$ brew cleanup --force
$ brew update
5
pstaender

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

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

Sは、実行時にグループIDを設定して、別の管理ユーザーがHomebrewを更新またはアップグレードするときに書き込み権限が失われないようにします。

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

4
jimmont

この方法は、いくつかの方法よりも簡単な場合があります。以下が含まれます。

  • 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を新しいエイリアスに追加します。このアプローチが私が望んでいたことを達成できなかった場合に備えて、私はそうしました、そして、私は前のアドレスを再び必要としました。新しいリモートが機能したので、OriginによってエイリアスされたURLの変更についてコメントするように他の人を招待します。私はあなたのために働いたものを反映するために答えを喜んで更新します。

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

1
Kay V

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

Brew updateコマンドはgit pullを実行するため、変更されたファイル(または、ディレクトリのアクセス許可を再帰的に変更したときにファイル属性が発生した場合)がある場合は、何らかの方法で競合を修正する必要があります。 git stashの使用は1つの方法です。変更をすべて取り除いて、最後に更新されたレポバージョンに効果的に戻るようにします。 Homebrewの「場所」はデフォルトで/usr/localであり、gitリポジトリとしてインストールされます。 .gitフォルダーを探して、自分で確認できます。私は自作のアンインストールスクリプトを書いて、すぐにGitHubプロファイルに追加情報を掲載します。

1
Steve Benner
Sudo chown -R USER /usr/local/bin

注-USERの場合はコマンド、つまりユーザー名を使用します

Sudo brew doctor
1
imvp

これは動作するはずです。

1. cd `brew --prefix`
2. git fetch Origin
3. git reset --hard Origin/master
4. Sudo brew update
0
Rahul Vivek

この投稿 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
clozach