Edited at

Homebrew使い方まとめ


概要

mac用のパッケージマネージャーであるHomebrewのコマンド一覧です。

自分用なので見にくいかもしれません。


インストール

javaとCommand Line Toolsが必要。


terminalで

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"


zshのコマンド補完設定

"/usr/local/Library/Contributions/" 配下にbashやzsh用のbrewコマンドの補完関数が追加される。それをzshに読み込ませる。

cd /usr/local/share/zsh/site-functions

ln -s ../../../Library/Contributions/brew_zsh_completion.zsh _brew


用語

formula


Homebrew では、いわゆるパッケージ名のことを formula と呼ぶ。


keg


/usr/local/Cellar/keg/version/


Cellar


デフォルトは /usr/local/Cellar


インストールしたパッケージの実体は /usr/local/Cellar にあり、/usr/local/bin/ や /usr/local/lib/ にシンボリックリンクが作られる。


config.log


/Users/izuku/Library/Logs/Homebrew/php55にある


コマンド


インストール

brew install formula


検索

'/'で囲むと正規表現で検索できる。

brew search text

brew search /text/


一覧

インストールされたformulaの一覧を表示

brew list

brew -v list


アンインストール

brew uninstall formula


更新のあるformulaを見る

brew outdated


古いバージョン(outdated)のformulaを削除

brew cleanup

brew cleanup -n #何が消されるのか一覧を表示する。


Homebrewとformulaをアップデートする

brew update

brew upgrade (formula|無しですべて) #更新があるパッケージを再ビルドする


formulaの情報を見る

brew info formula


依存関係をみる。

brew deps formula

brew deps --tree formula #tree式


formulaの有効化無効化

brew link formula

brew unlink formula


brewに問題がないか調べる。

brew doctor


Homebrewprefixからデッドシンボリックリンクを削除する。

brew prune


tap/untap

brew tap ユーザー名/リポジトリ名

brew untap ユーザー名/リポジトリ名 #このリポジトリでインストールしたformulaは先に削除しておく


tapしたリポジトリの一覧を表示する

brew tap


brewへのpull requestをpullする

brew pull アドレス

brewへのpull requestが出されているものをインストール出来る?


設定


gitをfast-forward onlyにする

一旦/usr/localをいじるかなにかすると、その後updateごどにマージコミットをしなければならずとてもめんどくさいことになります。なので、fast-forward onlyにしておくと邪魔なマージコミットを除けます。(git version>=2.0.0)

git config --global pull.ff only

もしfatal: Not possible to fast-forward, aborting.というエラーが出てきた場合、localをresetしてリモートと同じ状態にします。

cd `brew --prefix`

git fetch origin
git reset --hard origin/master


拡張


brew-cask

macのディスクトップアプリもbrewでインストールできるようになる拡張。


インストール

最近比較的簡単にインストール出来るようになったらしい。

brew tap caskroom/cask


使い方

brew cask install formula

brew cask upgrade
brew cask list
などなど。

大体brewコマンドと同じように使える。

しかし、brew upgradeに相当するコマンドがないようなので、次に紹介するbrew-fileを使ってupgradeしている。

brew cask install formula

でそのformulaはアップデートできるが、この時前のformulaとは別のディレクトリに出来るので、それは手動で消すかuninstallしてからinstallする必要がある。

こういうワンライナーもある。


brew-file

brewの設定やインストールしたformulaの一覧を管理できるので移行に便利。

まあ移行なんでほとんどしないからcaskのupgradeに使っている。


インストール

brew install rcmdnk/file/brew-file

.zshrcや.bash_profileに以下を追記。

if [ -f $(brew --prefix)/etc/brew-wrap ];then

source $(brew --prefix)/etc/brew-wrap
fi

これで、brew installなどをすると、~/.brewfile/Brewfileにパッケージリストを作ってくれるらしい。


使い方

基本的にcask_upgradeしか使ってない。

brew file cask_upgrade -C

でインストールしているcaskのupgardeが出来る。(-Cをつけるとcleanupもしてくれる。)

また、以下のコマンドで、インストールcaskの数や、/Application/以下にあるアプリでcaskでもインストール出来るアプリの数を確認できます。

brew file casklist


普通の使い方

最初に現在の状態を書き出すために以下を実行。

brew file init

gitレポジトリでBrewfileを管理出来るらしい。

brewfileの中身を表示

brew file cat

brewfileの内容をインストール

brew file install


トラブルシューティング


  • Xcodeをアップデートするとbrew upgradeできなくなった。


    • xcodeはappstoreで更新しただけではインストールされてないので一度起動しCommand Line Tools をインストールする。




  • brew updateするとマージできないと怒られる。


    • いらないリポジトリがtapしたままだった。


    • cd $(brew --prefix) && git fetch origin && git reset --hard origin/masterする

    • 最悪そのformulaを再インストールする

    • dependencyの問題は一回--universalオプションを付けて再インストールしてみる。

    • 関連のものをrelinkするのも手




  • あるはずのformulaが無いと言われたら。


    • brew tapした中にあるなら、一度untapして再度tapしてみる。




  • insufficient permission for adding an object to repository database .git/objectsと出たら


    • ↑のマージ出来なかった時と同様にreset --hardをする。