#概要
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をする。