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
cd $(brew --prefix)
git reset --hard HEAD
brew update
以下を行う必要があります。
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はコメントでこれが彼のために働いたと指摘しましたが、彼のシーケンスは次のとおりでした:
my_username:admin
にchownします。つまり、Sudo chown -R ted:admin $(brew --prefix)
git fetch Origin
およびgit reset --hard Origin/master
を実行しますこれは、長い間修正されてきたupdate
コードの古いバグが原因です。ただし、バグの性質上、次のことを行う必要があります。
cd $(brew --repository)
git reset --hard FETCH_HEAD
brew doctor
がまだコミットされていない変更について文句を言う場合は、次のコマンドも実行します。
cd $(brew --repository)
git clean -fd
$ cd $(brew --prefix)
$ git clean -fd
$ git reset --hard
$ Sudo chown -R `whoami` `brew --prefix`
$ brew update
注:エラーが発生する前に4の前にステップ5を実行したため、ステップ2と3が機能しました。フォルダーの所有者を変更する前にbrew updateが問題全体を引き起こしました。
私のbrewパッケージライブラリがルートユーザーとしてダウンロードされ、gitがファイルをマージできないと文句を言うのでbrew updateを実行できなかった同様の問題がありました。
解決策は次のとおりです。
Sudo chown -R <user> /usr/local/Library
醸造リポジトリをリセットすることは、あなたが適用されたかもしれないフォーミュラの潜在的な修正を破棄することを気にしないなら、最も効率的な方法であるはずです:
$ cd `brew --prefix`
$ git fetch Origin
$ git reset --hard Origin/master
$ brew cleanup --force
$ brew update
これらのパスに管理者グループの書き込み(およびsetgidビット)許可を追加することで、マシン上でこれを修正できました。
Sudo chmod -R g+ws /usr/local /Library/Caches/Homebrew
Sは、実行時にグループIDを設定して、別の管理ユーザーがHomebrewを更新またはアップグレードするときに書き込み権限が失われないようにします。
brew cleanup --force
を実行しようとすると、Homebrewが/ usr/local/Cellar /のコンテンツを削除しようとするときにアクセス許可の問題があるため、この回答はやや不完全です。 (残念ながら、現時点ではこれをさらに調査することはできません。)
この方法は、いくつかの方法よりも簡単な場合があります。以下が含まれます。
手順(説明が必要な人のためのメモ付き):
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!に移行した」というすてきなレポートを含む、多数の更新を報告します。 (彼らの強調)。
別のオプションは、単にgit stash
を使用することです。
Brew updateコマンドはgit pull
を実行するため、変更されたファイル(または、ディレクトリのアクセス許可を再帰的に変更したときにファイル属性が発生した場合)がある場合は、何らかの方法で競合を修正する必要があります。 git stash
の使用は1つの方法です。変更をすべて取り除いて、最後に更新されたレポバージョンに効果的に戻るようにします。 Homebrewの「場所」はデフォルトで/usr/local
であり、gitリポジトリとしてインストールされます。 .git
フォルダーを探して、自分で確認できます。私は自作のアンインストールスクリプトを書いて、すぐにGitHubプロファイルに追加情報を掲載します。
Sudo chown -R USER /usr/local/bin
注-USERの場合はコマンド、つまりユーザー名を使用します
Sudo brew doctor
これは動作するはずです。
1. cd `brew --prefix`
2. git fetch Origin
3. git reset --hard Origin/master
4. Sudo brew update
この投稿 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