Homebrew の導入とコマンド一覧

## Homebrew とは

Homebrew は Macのパッケージマネージャー。パッケージのインストール、バージョン管理、削除などを、コマンドで一元管理できるのがメリット。拡張機能 homebrew-cask で、通常の Macアプリも管理することができる(対応しているもののみ)。指定ディレクトリにパッケージをインストールし、それらへのシンボリックリンクを/usr/localに作る仕組み。


## Homebrew のインストール

[Homebrew公式](https://brew.sh/ja/) から、 Homebrew をインストールするコマンドをターミナルにコピペして実行

(2024-10-12 更新)
`/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"`

以下、インストール時に実行されるコマンド。既存のディレクトリの権限に変更を加えたり、Homebrew 用のディレクトリを作成したりする。mkdir コマンドに目を通し、でどんなディレクトリが作られているか把握しとくと良い。

```bash
==> /usr/bin/sudo /usr/bin/install -d -o root -g wheel -m 0755 /opt/homebrew
==> /usr/bin/sudo /bin/mkdir -p /opt/homebrew/bin /opt/homebrew/etc /opt/homebrew/include /opt/homebrew/lib /opt/homebrew/sbin /opt/homebrew/share /opt/homebrew/var /opt/homebrew/opt /opt/homebrew/share/zsh /opt/homebrew/share/zsh/site-functions /opt/homebrew/var/homebrew /opt/homebrew/var/homebrew/linked /opt/homebrew/Cellar /opt/homebrew/Caskroom /opt/homebrew/Frameworks
==> /usr/bin/sudo /bin/chmod ug=rwx /opt/homebrew/bin /opt/homebrew/etc /opt/homebrew/include /opt/homebrew/lib /opt/homebrew/sbin /opt/homebrew/share /opt/homebrew/var /opt/homebrew/opt /opt/homebrew/share/zsh /opt/homebrew/share/zsh/site-functions /opt/homebrew/var/homebrew /opt/homebrew/var/homebrew/linked /opt/homebrew/Cellar /opt/homebrew/Caskroom /opt/homebrew/Frameworks
==> /usr/bin/sudo /bin/chmod go-w /opt/homebrew/share/zsh /opt/homebrew/share/zsh/site-functions
==> /usr/bin/sudo /usr/sbin/chown takna /opt/homebrew/bin /opt/homebrew/etc /opt/homebrew/include /opt/homebrew/lib /opt/homebrew/sbin /opt/homebrew/share /opt/homebrew/var /opt/homebrew/opt /opt/homebrew/share/zsh /opt/homebrew/share/zsh/site-functions /opt/homebrew/var/homebrew /opt/homebrew/var/homebrew/linked /opt/homebrew/Cellar /opt/homebrew/Caskroom /opt/homebrew/Frameworks
==> /usr/bin/sudo /usr/bin/chgrp admin /opt/homebrew/bin /opt/homebrew/etc /opt/homebrew/include /opt/homebrew/lib /opt/homebrew/sbin /opt/homebrew/share /opt/homebrew/var /opt/homebrew/opt /opt/homebrew/share/zsh /opt/homebrew/share/zsh/site-functions /opt/homebrew/var/homebrew /opt/homebrew/var/homebrew/linked /opt/homebrew/Cellar /opt/homebrew/Caskroom /opt/homebrew/Frameworks
==> /usr/bin/sudo /usr/sbin/chown -R takna:admin /opt/homebrew
==> /usr/bin/sudo /bin/mkdir -p /Users/takna/Library/Caches/Homebrew
==> /usr/bin/sudo /bin/chmod g+rwx /Users/takna/Library/Caches/Homebrew
==> /usr/bin/sudo /usr/sbin/chown -R takna /Users/takna/Library/Caches/Homebrew
==> Downloading and installing Homebrew...
remote: Enumerating objects: 283625, done.
remote: Counting objects: 100% (44/44), done.
remote: Compressing objects: 100% (44/44), done.
remote: Total 283625 (delta 0), reused 44 (delta 0), pack-reused 283581 (from 1)
remote: Enumerating objects: 55, done.
remote: Counting objects: 100% (33/33), done.
remote: Total 55 (delta 33), reused 33 (delta 33), pack-reused 22 (from 1)
==> Updating Homebrew...
==> Downloading https://ghcr.io/v2/homebrew/portable-ruby/portable-ruby/blobs/sha256:e7340e4a1d7cc0f113686e461b93114270848cb14676e9037a1a2ff3b1a0ff32
######################################################################################### 100.0%
==> Pouring portable-ruby-3.3.5.arm64_big_sur.bottle.tar.gz
Warning: /opt/homebrew/bin is not in your PATH.
  Instructions on how to configure your shell for Homebrew
  can be found in the 'Next steps' section below.
==> Installation successful!
```

説明通り、以下のコマンドで PATH を設定

* `echo >> /Users/takna/.zprofile`. 
* `echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/takna/.zprofile`. 
* `eval "$(/opt/homebrew/bin/brew shellenv)"`

`brew doctor` で正常に動作しているか確認して完了。

- - -

※以降は 2024-10-12 に未チェックなので今は違うかも

## メモ

* Homebrew では、パッケージのことを Formura と呼ぶ (ここではパッケージと呼ぶ)
* Homebrew でインストールしたパッケージは、全て "/usr/local/Cellar" にインストールされる（[場所の変更可](http://blog.hirokikana.com/?p=236))
* homebrew-cask でインストールしたアプリは、"/usr/local/Caskroom" にインストールされる


## コマンド

`brew help`
コマンド一覧

`brew --config`
設定の確認

バージョンチェック
`brew -v`

問題がないかチェック
`brew doctor`

Homebrew 本体のアップデート（インストール直後に実行）
~~`brew update`~~(今はエラーになる)
`git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core fetch --unshallow`
結構時間かかる。続けて、
`git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask fetch --unshallow`


パッケージを探す(例：wget を探す場合)
`brew search wget`

パッケージをインストール
`brew install wget`

パッケージの有効化と無効化
`brew unlink wget`  # 一時的に無効化
`brew link wget`    # 有効化

パッケージ(formula)の更新
`brew update && brew upgrade && brew cleanup`
更新 → アップグレードがあるパッケージを再ビルド → 古いパッケージを手動削除 (30日以上古いものは自動削除されるので必須ではない)。`brew prune`(デッドリンクになっているものを削除)は、`brew cleanup`に吸収されたので今は不要

`brew doctor` # 動作テスト

インストールされたリストを表示する
`brew list`

パッケージをアンインストール
`brew remove wget`

## Macアプリをインストール

homebrew-cask は、Macアプリをコマンドで管理する homebrew の拡張機能

* `brew install --cask google-chrome` (Chrome)
* `brew uninstall --cask google-chrome` アンインストール

## QuickLook 拡張のインストール

`brew install betterzip mdimagesizemdimporter qlcolorcode qlimagesize qlmarkdown qlstephen qlvideo quicklook-csv quicklook-json quicklook-pat quicklookase scriptql suspicious-package`

`xattr -r ~/Library/QuickLook`

`xattr -d -r com.apple.quarantine ~/Library/QuickLook`

## Homebrew 本体のアンインストール
`ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"`


## その他のコマンド
* [公式Help](https://docs.brew.sh/FAQ)
* [Mac - homebrewとは何者か。仕組みについて調べてみた - Qiita](http://qiita.com/omega999/items/6f65217b81ad3fffe7e6)


## エラーの対処例

`brew doctor` で以下のメッセージが出た場合。

```
Please note that these warnings are just used to help the Homebrew maintainers
with debugging if you file an issue. If everything you use Homebrew for is
working fine: please don't worry and just ignore them. Thanks!

Warning: Unbrewed dylibs were found in /usr/local/lib.
If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.

Unexpected dylibs:
    /usr/local/lib/libusb-1.0.0.dylib
```

該当のファイルをゴミ箱に移動。
`mv /usr/local/lib/libusb* .Trash/`

再び `brew doctor` して問題がないことを確認。


- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 


## 参考記事

* [Homebrewをアンインストールするには - Qiita](http://qiita.com/UmedaTakefumi/items/dc52f008586cbf06582f)
* [ＨｏｍｅＢｒｅｗの仕組みについてまとめておく - それマグで！](http://takuya-1st.hatenablog.jp/entry/20111224/1324750111)
* [Homebrew — OS X用パッケージマネージャー](http://brew.sh/index_ja.html)
* [Homebrewの導入と使い方 | CAPH TECH](http://tech.caph.jp/2011/04/06/homebrew%E3%81%AE%E5%B0%8E%E5%85%A5%E3%81%A8%E4%BD%BF%E3%81%84%E6%96%B9/)
* [MacOSX - パッケージ管理システム Homebrew - Qiita](http://qiita.com/b4b4r07/items/6efebc2f3d1cbbd393fc)
* [Mac Book Air 設定手順|Web.Tech](http://webdottech.github.io/mac/2014/01/08/macbookair/)