簡単!これでわかるHomebrewのすべて
MacへのHomebrewのインストール方法の手順だけではなく、Formula, CaskやTapなどHomebrewを使いこなす上で必須となる知識を深められるように可能な限り詳細に説明を行っています。Homebrewはじめての人、使っているけど理解が不足している人はぜひこの機会に参考にしてください。
Homebrewのインストールを行うMacのバージョンは、macOS Catalinaバージョン10.15.6です。
目次
Homebrewについて
HomebrewはMac上で動作するパッケージマネージャーで、ソフトウェアのインストール、アンインストールをコマンドラインで行うことができ、インストール時にパッケージ間の依存関係を解決してくれる便利なツールです。
Homebrewを使わなかった場合
もしHomebrewを使わなかった場合のパッケージ(ソフトウェア)のインストールを確認しておきましょう。必ずしも下記の順番ではないかもしれませんが、インストールが完了するまでにさまざまなステッップを踏む必要があります。
- 検索エンジンでインストールしたいパッケージサイトを見つける
- パッケージのサイトでインストールの方法を確認する
- バッケージのダウンロードを行う
- 依存関係があればそのパッケージを先にインストールする
- パッケージのインストールを行う
その他にも本当にこのサイトが正しくて安全なのかやインストール方法が英語でわからないなどまだまだ大変なことはあるかもしれません。またアンインストールについては面倒だからとそのまま放置ということも多いのが実情ではないでしょうか。
Homebrewを使った場合
Homebrewを使わなかった場合に述べたことをまとめるとパッケージを管理するために必要な操作は以下の4つに集約されます。Homebewはそれらの操作をコマンドラインで簡単に行うことができます。
- パッケージの検索
- パッケージのインストール
- パッケージのアンインストール
- パッケージの更新
Homebrewのインストール
Homebrewのサイトでインストール方法の確認を行います。画面上に表示されているスクリプト(下記の赤線で囲まれた部分)を使って実行します。rubyコマンドを使って実行しますが、Macではrubyはインストールされているのでrubyのインストールは必要ありません。
コマンドラインで実行するため、ターミナルを起動して行います。Finderのメニューからユーティリティを選択して、ターミナルをダブルクリックすると起動することができます。
ターミナルが起動できたら、先ほど紹介したスクリプトをターミナルにコピー&ペーストしてHomebrewのインストールを開始してください。
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
インストールを実行すると途中でXcode Command Line Toolsのインストールの確認(インストール済でない場合)が表示されるので、そのまま”Enter”キーを押してください。
==> The Xcode Command Line Tools will be installed.
Press RETURN to continue or any other key to abort
次にパスワードを聞かれるので、今Macにログインしているユーザのパスワードを入力してください
==> /usr/bin/sudo /bin/chmod u+rwx /usr/local/bin /usr/local/include /usr/local/lib /usr/local/share /usr/local/share/doc /usr/local/share/man /usr/local/share/man/man1
Password:
パスワードが間違っているとSorry, try again.と表示されます。再度正しいパスワードを入力してください。パスワードがあっているとそのままインストールが継続します。
Downloading Command Line Tools (macOS Mojave version 10.14) for Xcode
Downloaded Command Line Tools (macOS Mojave version 10.14) for Xcode
Installing Command Line Tools (macOS Mojave version 10.14) for Xcode
Command Line Toolsのインストールが完了するとHomebrewのダウンロードとインストールが行われます。
==> Downloading and installing Homebrew...
インストールが成功(Installation successful!)し、メッセージに”Run brew help”が表示されるので実行します。
==> Installation successful!
==> Homebrew has enabled anonymous aggregate formulae and cask analytics.
Read the analytics documentation (and how to opt-out) here:
https://docs.brew.sh/Analytics
==> Homebrew is run entirely by unpaid volunteers. Please consider donating:
https://github.com/Homebrew/brew#donations
==> Next steps:
- Run `brew help` to get started
- Further documentation:
https://docs.brew.sh
実行するとbrewのコマンドラインの使用方法が表示されます。これでHomebrewのインストールは完了です。
$ brew help
Example usage:
brew search [TEXT|/REGEX/]
brew info [FORMULA...]
FORMULAとは
brew helpを実行したあとのメッセージにbrew info のあとに[FORMULA…]を指定しているのがわかるかと思います。
formulaは、ruby言語でパッケージの定義が記述されており、formulaの内容に沿ってパッケージのインストールが行われます。インストールする時などhomebrewを使用する際にはformulaを指定しますが、パッケージ名を指定していると考えても問題ないかと思います。
Homebrewコマンドの確認
バージョンの確認
Homebrewのバージョンを確認したい場合はbrew –versionコマンドを実行します。
% brew --version
Homebrew 3.1.6
Homebrew/homebrew-core (git revision 961dd2d5be; last commit 2021-05-11)
Homebrew/homebrew-cask (git revision a4dd4a1908; last commit 2021-05-11)
パッケージのインストール
Homebrewのインストールが完了したらパッケージのインストールを行ってみましょう。ここではtreeコマンドのインストールを行います。
パッケージのインストールはbrew installコマンドを利用して行います。インストール後はtreeコマンドがどこにインストールされたかもwhichコマンドで確認しておきます。
$ brew install tree
==> Downloading https://homebrew.bintray.com/bottles/tree-1.8.0.mojave.bottle.ta
######################################################################## 100.0%
==> Pouring tree-1.8.0.mojave.bottle.tar.gz
🍺 /usr/local/Cellar/tree/1.8.0: 8 files, 117KB
$ which tree
/usr/local/bin/tree
treeコマンドは、実行したディレクトリ以下のディレクトリ・ファイル構成を表示してくれるコマンドです。ディレクトリ、ファイル構成を確認したい場所でtreeコマンドを実行してみてください。ここではPHPのフレームワークであるLaravelのインストールディレクトリで実行しています。
laravel $ tree
.
├── app
│ ├── Console
│ │ └── Kernel.php
│ ├── Exceptions
│ │ └── Handler.php
│ ├── Exports
│ │ └── UsersExport.php
│ ├── Http
│ │ ├── Controllers
│ │ │ ├── Auth
│ │ │ │ ├── ForgotPasswordController.php
│ │ │ │ ├── LoginController.php
│ │ │ │ ├── RegisterController.php
│ │ │ │ ├── ResetPasswordController.php
│ │ │ │ └── VerificationController.php
インストール済みのパッケージの確認
Homebrewを通して、インストールを行ったパッケージの確認はbrew listで行います。list実行時は、treeのパッケージのみインストールを行ったので、treeのみ表示されます。パッケージのインストールをすればここに表示されるパッケージ情報も増えることになります。
$ brew list
tree
インストールができるパッケージの確認
Homebrewを使ってインストールできるパッケージはbrew searchで行うことができます。多数のパッケージがHomebrewを通してインストールできることが確認できます。
laravel $ brew search
a2ps liboping
a52dec libopkele
aacgain libopusenc
aalib libosinfo
HomebrewでインストールできるパッケージはHomebrewのサイトにも記載されています。
brew searchのあとに名前を指定するとシステムへのインストールの状況も確認することができます。下記の例ではmysqlを指定します。システムにMySQLがインストール済みの場合は、名前の横にチェックが表示されます。
$ brew search mysql
==> Formulae
automysqlbackup mysql-connector-c mysql@5.5
mysql ✔ mysql-connector-c++ mysql@5.6
mysql++ mysql-sandbox mysql@5.7
mysql-client mysql-search-replace mysqltuner
mysql-cluster mysql-utilities
==> Casks
homebrew/cask/mysql-connector-python homebrew/cask/navicat-for-mysql
homebrew/cask/mysql-shell homebrew/cask/sqlpro-for-mysql
homebrew/cask/mysql-utilities
パッケージのアンインストール
パッケージのアンインストールはbrew unistallコマンドで行うことができます。アンインストール後は、brew listコマンドを実行してもtreeは表示されなくなります。
$ brew uninstall tree
Uninstalling /usr/local/Cellar/tree/1.8.0... (8 files, 117KB) libosinfo
$brew list
パッケージの情報を確認する
brew infoコマンドで個別パッケージの詳細情報を確認することができます。
バージョン情報やmacへのインストール情報だけではなく一定期間毎にインストールされた数や依存関係の情報(依存関係のあるパッケージがあれば)も表示されます。
vue $ brew info tree
tree: stable 1.8.0 (bottled)
Display directories as trees (with optional color/HTML output)
http://mama.indstate.edu/users/ice/tree/
/usr/local/Cellar/tree/1.8.0 (8 files, 117KB) *
Poured from bottle on 2019-06-08 at 17:19:24
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/tree.rb
==> Analytics
install: 28,859 (30 days), 87,988 (90 days), 356,802 (365 days)
install_on_request: 26,127 (30 days), 79,081 (90 days), 315,269 (365 days)
build_error: 0 (30 days)
パッケージのパスを確認する
インストールしたパッケージの実行のパスを確認するためには–prefixを利用します。
% brew --prefix git
/usr/local/opt/git
gitのパスは/usr/local/opt/gitであることがわかります。
バージョンの確認をする
Mac上にインストールしたHomebrewのバージョンを確認するためには、homebrew –versionコマンドを実行します。
$ brew --version
Homebrew 2.1.4
Homebrew/homebrew-core (git revision 0385; last commit 2019-06-07)
問題がないかチェックを行う
Homebrewに問題がないかのチェックはhomebrew doctorで行います。
$ brew doctor
Your system is ready to brew.
不必要になった古いバージョンを削除する
インストールしたパッケージの古いバージョンを削除する場合はhomebrew cleanupを実行します。インストール直後のHomebrewの環境では実行しても何も起こりません。
$ brew cleanup
Homebrewやパッケージをアップデートする
brew updateコマンドでHomebrewのアップデートを行うことができます。更新がない場合は”Already up-to-date.”が表示されます。最新版という意味です。
$ brew update
Already up-to-date.
brew upgradeではインストールしたパッケージのアップデートを行うことができます。何も更新がないと実行しても何も表示されません。
$ brew upgrade
アップデートがないかの確認はbrew outdatedで行います。何もないと実行しても何も表示されません。
$ brew outdated
Homebrewのインストールから使用頻度の高いコマンドについて説明を行ってきましたが特別難しい箇所はありません。ぜひ本文書を参考にHomebrewを活用してパッケージ管理を行ってください。
サービスを自動機能するbrew services
Homebrewを使ったインストールしたデータベースMySQLはmysql.server startコマンドを使用することで起動を行うことができます。しかし、MACを再起動する度に上記コマンドを実行する必要があります。毎回再起動を行う毎に起動コマンドを実行する代わりにHomebrew Servicesを利用することで再起動時に自動起動させることができます。MySQLに限らずさまざまなパッケージがHomebrew Servicesを利用して起動管理を行うことができます。
brew servicesのインストール
homebrew serviceを使用するにはインストールが必要になりますが、下記のコマンドを実行すると自動でインストールが開始されます。
$ brew services list
==> Tapping homebrew/services
実行後、homebrew serviceで管理できるMySQLとredisがあることを確認できます。どちらも自動起動の設定は行っていないので、ステータスはstoppedとなっています。
$ brew services list
Name Status User Plist
mysql@5.7 stopped
redis stopped
サービスの自動起動設定
brew servicis startコマンドを利用して、MySQLの起動を行いステータスの確認を行うと以下のように表示されます。
$ brew services start mysql@5.7
==> Successfully started `mysql@5.7` (label: homebrew.mxcl.mysql@5.7)
~ $ brew services list
Name Status User Plist
mysql@5.7 started reffect /Users/reffect/Library/LaunchAgents/homebrew.mxcl.mysql@5.7.plist
redis stopped
サービスの自動起動停止
brew services stopコマンドを実行すると自動起動設定したサービスを停止することができます。
$ brew services stop mysql@5.7
Stopping `mysql@5.7`... (might take a while)
==> Successfully stopped `mysql@5.7` (label: homebrew.mxcl.mysql@5.7)
サービスの起動
自動起動ではなくサービスの起動のコマンドも準備されています。brew services runコマンドを実行すると起動します。(自動起動の設定ではありません。)
$ brew services run mysql@5.7
==> Successfully ran `mysql@5.7` (label: homebrew.mxcl.mysql@5.7)
ChomeやFirefoxなどGUIのインストール
brew searchコマンドを実行した結果、非常にたくさんのパッケージをHomebrewを使ってインストールできることは確認できます。しかし、ChromeやFirefoxなどのGUIの情報は見つけることができません。Firefoxのインストールを通してGUIアプリケーションのインストール手順を確認していきましょう。
brew searchはformula名(パッケージの名前)を入力して実行すると指定したパッケージがインストールができるかどうか確認を行うことができます。firefoxを検索してみましょう。これまでには見かけることのなかったCasksという単語が確認できます。
$ brew search firefox
==> Casks
homebrew/cask-versions/firefox-beta
homebrew/cask-versions/firefox-developer-edition
homebrew/cask-versions/firefox-esr
homebrew/cask-versions/firefox-nightly
homebrew/cask/firefox
Casksとは
Caskを利用することで、ChromeやFirefoxなどのmasOSのGUIアプリケーションをインストール、管理することができるようになります。CaskのおかげでHomebrewで管理下におけるアプリケーションの数を格段に増やすことができます。ChromeやFirefox以外のブラウザであるOpere, BraveなどもCaskを使ってインストールすることができます。
Firefoxのインストール(brew install)
先程brew searchでfirefoxの情報が検索できたので、これまで通りbrew installコマンドでfirefoxのインストールを行ってみます。(Casksを意図的に無視します)
brew installコマンドではErrorメッセージ(Error: No formulae found in taps.)にあるようにfirefoxを見つけることができず失敗に終わります。
$ brew install firefox
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 1 tap (homebrew/core).
==> New Formulae
drone-cli
.
.
Error: No previously deleted formula found.
==> Searching for similarly named formulae...
Error: No similarly named formulae found.
==> Searching taps...
==> Searching taps on GitHub...
Error: No formulae found in taps.
Firefoxのインストール(brew cask install)
brew caskコマンドは廃止になり、実行するとエラーになります。brew install firefox –caskコマンドを実行してください。brew cask listコマンドもbrew list –caskコマンドになります。」
brew installではインストールが失敗しましたが、caskを利用することでインストールすることができます。caskを利用する場合は、installの前にcaskを挿入します。
caskを使用するためには事前になにか準備をする必要はありません。以下にあるようにbrew caskコマンドを利用するとcaskに関する情報がシステムにダウンロードされ、そこからパッケージのインストールが開始されます。caskに関する情報がダウンロードされるのはbrew caskを最初に実行した時のみです。
$ brew cask install firefox
==> Tapping homebrew/cask
Cloning into '/usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask'...
remote: Enumerating objects: 3692, done.
remote: Counting objects: 100% (3692/3692), done.
remote: Compressing objects: 100% (3682/3682), done.
remote: Total 3692 (delta 24), reused 579 (delta 8), pack-reused 0
Receiving objects: 100% (3692/3692), 1.21 MiB | 1.43 MiB/s, done.
Resolving deltas: 100% (24/24), done.
Checking out files: 100% (3673/3673), done.
Tapped 1 command and 3588 casks (3,698 files, 3.9MB).
==> Satisfying dependencies
==> Downloading https://download-installer.cdn.mozilla.net/pub/firefox/releases/
######################################################################## 100.0%
==> Verifying SHA-256 checksum for Cask 'firefox'.
==> Installing Cask firefox
==> Purging files for version 67.0.1 of Cask firefox
==> Moving App 'Firefox.app' to '/Applications/Firefox.app'.
🍺 firefox was successfully installed!
インストールメッセージの通り、Applicationsディレクトリの中にFirefoxがインストールされているはずです。
Homebrewでインストールを行ったため、FirefoxはHomebrewの管理下におかれます。brew listコマンドではなくbrew cask listでインストールされたFirefoxを確認することができます。
$ brew cask list
firefox
caskでインストールしたパッケージの削除
caskを使ってインストールしたパッケージはbrew cask uninstall パッケージ名で削除を行います。
Tapsとは
brew cask installを実行した際にTappingやTapsという単語がありましたが、Homebrewを使う上で知っておかなければならないものの一つです。
$ brew cask install firefox
==> Tapping homebrew/cask
Cloning into '/usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask'...
Tapsは、Homebrewではrepositories(リポジトリ:日本語では貯蔵庫)のことを表しており、Tapそれぞれが管理する複数のFormula(パッケージ群)を持っています。例えば上記にあるようにbrew cask installを実行したことでhomebrew/caskというTapがHomebrewに追加されました。
この追加したTapの中には、複数のFormulaが入っており、/usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask/Casksの下にFormulaのファイルが保存されています。
Tapの確認(brew tap)
Homebrewで管理しているTapはbrew tapで確認することができます。
$ brew tap
homebrew/cask
homebrew/core
homebrew/coreはHomebrewをインストールした際に一緒に設定されているデフォルトTapです。homebrew/caskはbrew cask install実行時に追加されたTapです。
Tapを追加
Tapをさらに追加することも削除することも可能です。追加することでさらにたくさんのパッケージをHomebrewでインストール、管理できるようになります。Braveというブラウザのインストールを例にTapの追加を説明していきます。
例えばbraveというブラウザをインストールしたい場合にbrew search braveを実行します。
$ brew search brave
==> Casks
brave-browser
homebrew/cask-versions/brave-browser-beta
homebrew/cask-versions/brave-browser-dev
serachの結果braveに関するパッケージは3つ表示されました。Casksの下のbrave-browserのインストールは先程のFireFoxと同様にbrew cask install brave-browserで行うことができます。brave-browserの下に表示されている2つのパッケージについてインストール方法を確認していきます。
brave-broser-betaとbrave-browser-devは、homebrew/cask-versionsのTap下にあるため、名前だけ入力してインストールしても失敗します。
$ brew cask install brave-browser-beta
Error: Cask 'brave-browser-beta' is unavailable: No Cask with this name exists.
先にhomebrew/cask-versionsのTapの追加を行います。brew tapコマンドを利用して、Tapの追加と確認を行っています。
$ brew tap homebrew/cask-versions
==> Tapping homebrew/cask-versions
Cloning into '/usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask-versions'...
remote: Enumerating objects: 200, done.
remote: Counting objects: 100% (200/200), done.
remote: Compressing objects: 100% (196/196), done.
remote: Total 200 (delta 10), reused 30 (delta 1), pack-reused 0
Receiving objects: 100% (200/200), 85.38 KiB | 328.00 KiB/s, done.
Resolving deltas: 100% (10/10), done.
Tapped 171 casks (218 files, 327.5KB).
Tapの追加が完了したら、brew tapコマンドにhomebrew/cask-versionsが追加されていることが確認できます。
$ brew tap
homebrew/cask
homebrew/cask-versions
homebrew/core
再度brave-browser-betaのインストールを実行します。先程失敗しましたが、新たにTapを追加するとインストールを行うことができます。Tapを追加することでインストール、管理できるパッケージが増えることが確認できました。
$ brew cask install brave-browser-beta
==> Satisfying dependencies
==> Downloading https://github.com/brave/brave-browser/releases/download/v0.66.8
==> Downloading from https://github-production-release-asset-2e65be.s3.amazonaws
######################################################################## 100.0%
==> Verifying SHA-256 checksum for Cask 'brave-browser-beta'.
==> Installing Cask brave-browser-beta
==> Moving App 'Brave Browser Beta.app' to '/Applications/Brave Browser Beta.app
🍺 brave-browser-beta was successfully installed!
homebrew/cask-versionsを追加後に再度braveを検索すると先程まで表示されていたhomebrew/cask-versions/が消えて、インストールされているパッケージにチェックがついていることを確認できます。
$ brew search brave
==> Casks
brave-browser brave-browser-beta ✔ brave-browser-dev