brew updateとupgradeの違い
manに書いてあることではありますが,忘れてしまうので記しておきます.
- updateは,Homebrew自体を最新版にして,内部で管理しているformula(パッケージ)も最新版にする.
- upgradeは,Homebrew内部で管理しているformulaのみを最新版にする.
- upgradeは,特定のformula名を指定して,それだけ更新することもできる
このような形です.
brew upgrade opencv
- updateは,Homebrewの管理フォルダ内に登録されていないファイルがあると,エラーになる.(具体的には,gitで管理されていないファイルがあるとダメ)
たとえば以下のようなもののことです.
# error: The following untracked working tree files would be overwritten by merge: # Library/Formula/lbdb.rb # Please move or remove them before you can merge. # Aborting # Error: Failure while executing: git pull -q origin refs/heads/master:refs/remotes/origin/master
これはHomebrewの管理フォルダに,gitでいうところの"Untracked files"があることを示しています.
(私の場合は /use/local)
cd /usr/local git status . # On branch master # Untracked files: # (use "git add <file>..." to include in what will be committed) # # Library/Formula/git-diffall.rb # Library/Formula/git-subtree.rb # Library/Formula/lbdb.rb # Library/Formula/libdrizzle.rb # Library/Formula/metapixel.rb # Library/Formula/readpst.rb # Library/Formula/rogue.rb # Library/Formula/scummvm.rb
少々乱暴ですが,以下のようにUntracked filesを消せば,Homebrewを正常にupdateできます.
git clean -f # Removing Library/Formula/git-diffall.rb # Removing Library/Formula/git-subtree.rb # Removing Library/Formula/lbdb.rb # Removing Library/Formula/libdrizzle.rb # Removing Library/Formula/metapixel.rb # Removing Library/Formula/readpst.rb # Removing Library/Formula/rogue.rb # Removing Library/Formula/scummvm.rb brew update # Updated Homebrew from 11963f03 to 1693f875. # (上記の文字列はgitのハッシュ値で,そのときの最新バージョンによって値は異なる.) # (さらにこの下に,新しく登録されたformulaと,サポート外で削除されたformulaのリストが出るが,長いので割愛.)
まだMacには慣れませんが,ぼちぼちやっていきましょう.