homebrewの実は知ってそうで、やっぱり知ってたことまとめ


homebrewを使えば、macでのアプリケーション管理が楽ちんになります。
普段使っていて見落としがちで、実際には見落としてないことを紹介します。

## 念のための前提条件

読む前にhomebrewは導入しておきましょう。
特に[Xcode Command Line Tools](https://developer.apple.com/downloads/)は忘れがちなのでお気をつけ下さい。

- An Intel CPU 1
- OS X 10.5 or higher 2
- Command Line Tools for Xcode: xcode-select --install, https://developer.apple.com/downloads or Xcode 3
- A Bourne-compatible shell for installation (e.g. bash or zsh) 4



## .app .pkg .dmg形式のGUIアプリケーションをインストール

guiアプリケーションもインストールできるのがhomebrewの魅力ですね。
brew-caskを使えば大抵のものはインストールできちゃいます。

```
$ brew tap caskroom/cask
$ brew install brew-cask
```

あとはsearchで検索してお好きなモノをインストールしましょう

```
$ brew cask search
$ brew cask install google-chrome
```

## Brewfileで一括インストール

Brewfileに設定を記述しておけばコマンド１回でたくさんのパッケージをインストールできます。
いろんなPC環境で作業する方、PCを新調される方は書いておくことをおすすめします。

Brewfileではbrewは省略できます。

```
# Brewfile
install git || true
install vim || true
install tmux || true
```

エラーで止まってしまうことがあるので「 || true」で続行できるようにしています。


## homebrewでインストールしたものを優先的に利用する

最初から入っているものをhomebrewでもインストールした場合、homebrewでインストールしたものは使われません。
例えばgitとか。gitとか、あとgitとか。

パスの読み込み順序を替えて優先的にhomebrewでインストールしたものを実行できるようにしましょう。

```
# .zshrc
export PATH=/usr/local/bin:$PATH
```

または/etc/pathsを直接書き換えるという荒業もできます。

```
# /etc/paths (sudoで編集します)
# /usr/local/binを一番上に持ってくる
/usr/loca/bin
/usr/bin
/bin
/usr/sbin
/sbin
```

## 気になったパッケージのホームページを見てみる

brew searchしてこのパッケージなんだっけと思ったらホームページで確認してみましょう。

```
# 面白そうなパッケージを見つける
$ brew search

# ホームページを開く
$ brew home <面白そうなパッケージ名>
```

これでbrew利用度が加速しますね。

## 公式以外のリポジトリを追加してパッケージ三昧うはうは

公式じゃ物足りないあなたには野良リポジトリがあります。
すでに出てきてますが、tapを用いれば他のリポジトリも追加できます。

```
# 例
$ brew tap homebrew/versions
$ brew tap caskroom/cask
$ brew tap homebrew/binary
$ brew tap homebrew/dupes
$ brew tap sanemat/font
```

ここにいろんなリポジトリがしょうかいされているので一度見てみましょう。
- [Interesting Taps & Branches](https://github.com/Homebrew/homebrew/wiki/Interesting-Taps-&-Branches)


## 古いバージョンのパッケージを削除する

特に解説はひつようありません。
インストール済みのパッケージの古いやつを削除してくれます。

```
$ brew cleanup
# 特定のパッケージについてのみ実行
$ brew cleanup <パッケージ名>
```

パッケージ自体の削除はbrew removeでやりましょう。


## エラーが出た場合の原因特定など

brew updateするとたまにエラーが出たりします。
そんな場合にはまずはエラーログを良く読みましょう。

わからない場合はdoctorに聞いてみます。

```
$ brew doctor

# 特定のものについて調べたい場合
$ brew install -vd <インストールしたいもの>
```


それでもわからなければ、githubのissuesに何か手がかりがあるかもしれません。

- 事例：[brew update fails](https://github.com/Homebrew/homebrew/issues/5128)


## オリジナルorまだ登録されていないパッケージを作る

オリジナルまたは公開されているがbrew化されていないものをパッケージ化するのも簡単です。

```
# tarballを指定してcreate
$ brew create http://example.com/foo-0.1.tar.gz
```

これで/usr/local/Library/Formula/foo.rbにファイルができるので、編集します。

なおテストしたい場合は上の原因特定のところで示したコマンドを使います。

```
# v = verbose , d = debug
$ brew install -vd foo
```

[Fomula Cookbook](https://github.com/Homebrew/homebrew/wiki/Formula-Cookbook)にはいろんな情報が乗っています。


## 既存パッケージにちょっと手を入れてカスタマイズ

既存パッケージをカスタマイズしたい場合には、設定を編集しちゃいます。

```
$ brew edit <既存パッケージ名>
```

こうすると上の説明同様のFormulaファイルが開くのでそれをいじるだけです。
コンパイルオプションなどを適宜変更しちゃいましょう。

vimなんかを自分専用にカスタムしたい人には嬉しいですね。


## vimを入れてクリップボード共有をやっておく

mac標準のvimはクリップボード連携できないようなのでhomebrewでインストールします。

```
$ brew install vim
# インストールされていることを確認
$ which vim
/usr/local/bin/vim 
# クリップボード共有を確認
$ vim --version | grep clipboard
+clipboard
```

そして.vimrcに設定を追加します。

```
# ~/.vimrc
set clipboard+=unnamed
```


## tmuxを入れてクリップボード共有もついでにやっておく

macにtmuxを入れるのであれば、合わせてコピー内容をクリップボード共有できるようにしましょう。

```
$ brew install tmux
$ brew install reattach-to-user-namespace
```

```
# .tmux.conf (zshの部分は適宜変更)
set-option -g default-command "reattach-to-user-namespace -l zsh"
```


## Rictyフォントでターミナル表示をイケてる感じにする

鉄板のrictyを入れます。
powerlineをvimやtmuxで使う人はそれ用にめんどうな手間がかかっていましたが、オプションつければ余裕です！

```
$ brew install ricty
# powerline使う人用
$ brew install --powerline --vim-powerline ricty

# 出来上がったフォントをコピー
$ cp -f /usr/local/Cellar/ricty/3.2.3/share/fonts/Ricty*.ttf ~/Library/Fonts/
$ fc-cache -vf
```

あとはitem2などでそのフォントを使えるようにしておきましょう。


## mysqlを入れて設定する

mysqlも簡単にインストールできますが、いくつか設定が必要なのでやっておきます。


```
$ brew install mysql
# 以降はインストール後に表示される指示通りに設定します。
$ unset TMPDIR
$ mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp
# ここでユーザーとパスワードを設定

# mysql起動
$ mysql.server start

# 必要に応じてセキュリティ設定
$ mysql_secure_installation

# 自動起動設定
$ ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents
$ launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
```

デフォルトの設定は常時起動となっています。
問題がある場合には、stopで止めれるようにplistを修正します。

```
# ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
<key>KeepAlive</key>
<false/>
```

編集後には再読み込みします。

```
$ launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
$ launchctl load -w !$
```


なお、データベースの格納場所は、/usr/local/varとなります。


## jenkinsを入れてぶん回す

jenkinsおいたんは重たいのですがあると便利ですね。

```
$ brew install jenkins

# 自動起動設定コピー
$ cp -p /usr/local/opt/jenkins/*.plist ~/Library/LaunchAgents

# 必要に応じて設定を編集（詳細はぐぐりましょう）
$ vim ~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist

# 自動起動設定読み込み
$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist

# 再起動後しか反映されないが、今すぐ起動したいなら以下実行
$ launchctl start homebrew.mxcl.jenkins
```