1266
1335

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Homebrew使い方まとめ

Last updated at Posted at 2014-09-14

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

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1266
1335

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?