開発用のMacの環境構築をするにあたり、Homebrewを最大限活用して環境構築をしてみることにしました。
Homebrewを解説した記事は多数ありますが、この記事ではHomebrewの仕組みにも触れながら、メリット・デメリットを押さえつつ、どのアプリをHomebrewで管理し、どのアプリを管理しないのか、という方針について解説していきます。
とりあえずHomebrewのセットアップ方法を知りたい!という方はHomebrewのインストールまで飛んで下さい。
なお、下記環境にて検証を行っています。
- MacBook Pro (M3 PRO)
- OS: Sonoma 14.2.1
- Homebrew 4.2.3
Homebrewとは
Homebrewはいわゆるパッケージ管理システムの1つで、Macには他にもMacPortsなどのパッケージ管理システムがありますが、現状最も人気なのがHomebrewだと思われます。具体的なシェアは見つからなかったのですが、執筆現在「Mac パッケージ管理」などと検索して出てくる情報の大多数がHomebrewの情報であり、特別な理由が無ければほぼ一択と言えるのではないでしょうか。
パッケージ管理システムと言うとコマンドラインツールのインストールを思い浮かべる方も多いと思いますが、Homebrewでは登録さえされていればGUIアプリやAppStoreで配信されているアプリも含めてコマンド一発でインストール、Homebrewの管理下に置くことが出来るようになります。
Homebrewの仕組みとメリット・デメリット
Homebrewのメリット・デメリットを深く理解するには仕組みについてある程度知っておく必要があると思います。
ポイントとしては、Homebrewというのはあくまで「有志の人たちが作っている自動化の仕組み」ということです。
例としてGoogle Chromeをインストールする場合を取り上げると、Homebrewを使わない場合は普通は公式サイトにアクセスしてインストーラーをダウンロードし、実行することになると思います。
一方Homebrewでインストールする場合、コマンドを実行するとcaskというインストール方法のレシピのような情報が読み込まれるのですが、実際のコードをGitHub上で確認してみましょう。
※執筆時点のコードを抜粋
cask "google-chrome" do
version "120.0.6099.199"
sha256 :no_check
url "https://dl.google.com/chrome/mac/universal/stable/GGRO/googlechrome.dmg"
name "Google Chrome"
desc "Web browser"
homepage "https://www.google.com/chrome/"
コードを見ると分かる通り、実はインストールするバージョンやインストーラーのURLが手書きで書かれています。Homebrewはこのファイルの情報を使って、インストーラのダウンロードやその後のインストール工程を自動で行ってくれます。
このcask(GUIアプリの場合の呼び名、コマンドラインツールではformulaと呼ぶ)は前述の通り基本的にはあくまで有志の方が作成し、更新をしています。中には公式の人がメンテしているものもあるでしょうが、基本的には非公式の方法ということになるので、常に最新にアップデートされている保証もなければ、内容が間違っている可能性すらあります。
これはAppleが管理を行い、アプリの開発者が公式に配信を行っているAppStoreとは性質が大きく異なる部分です。
Homebrewは多数の方の努力によって維持されており、多くの場合問題なく使えると思います。しかしその性質上、マイナーなアプリではアップデートが遅れる可能性が高いなどのデメリットは覚えておく必要があります。
Homebrewの管理対象にするアプリ
上記のメリット・デメリットを踏まえ私は下記方針でアプリをインストールしていきます。
- コマンドラインツール: Homebrewでインストール可能なもの全て
- GUIアプリ: 同上
- AppStoreアプリ: AppStoreを利用
いろいろな記事を参考にさせて頂きましたが、まずコマンドラインツールについてはHomebrewでインストールするのがもはや一般的と言えるようなので、Homebrewを使います。
GUIアプリについては悩ましい部分で、公式のインストーラを使うという選択肢も十分考えられますが、Homebrewを使う場合には「Homebrewの管理下に置かれる」ことが最大のポイントになると思います。管理下になることでアンインストールやアップデートなどがHomebrewのコマンドから出来るようになることはメリットとして大きいです。一方デメリットとしては先程も述べたように公式の方法ではないためにアップデートが遅れる可能性などがあります。今回は管理が楽になることを狙ってGUIアプリもHomebrewで構築することに挑戦してみます。以前はアプリ側の自動アップデートとの相性が悪い問題もあったようなのですが、最近は解決されつつあるようなので問題が生じたら個別にHomebrew外でインストールを行う方針とします。
AppStoreのアプリについては、こちらもHomebrewで管理される方もいるようなのですが、私はいわばApple公式のパッケージ管理システムであるAppStoreは信頼性の面でメリットが大きいと考え、AppStoreをそのまま使うことにします。パッケージ管理システムがHomebrew+AppStoreと2つに分かれてしまうことになりますが、これを1つにまとめた方が良いかは好み次第と思えます。
Homebrewのインストール
シェルの確認
Mac OS Catalina(2019年)からMacのデフォルトのシェルがbashからzshに変更されています。これはライセンスの問題のためbashのバージョンが古くなっているそうなので、当記事ではzshを使う前提で進めます。
念のため、ターミナルで以下を実行して現在のシェルを確認します。
% echo $SHELL
/bin/zsh
zsh以外のシェルになっている場合は下記コマンドで変更できます。
% chsh -s /bin/zsh
Homebrewのインストール
公式ページにアクセスし、トップ画面のコマンドをターミナルにコピーし実行します。
パスワードの入力が求められたら、Macのログインパスワードを入力します。
環境構築始めたての場合XCodeのツールのインストール等でそれなりに時間がかかるかもしれません。
ターミナルに”Installation successful!”などと表示されたらインストールは完了なのでPATHを通します。下記のように表示されている部分があるので、その下に表示されたコマンド(環境により少し異なるはず)をターミナルで実行します。(PATHの通し方が分かる方は自分で.zprofileや.zshrcを編集してももちろんOKです)
==> Next steps:
- Run these two commands in your terminal to add Homebrew to your PATH:
~ここに記載されているコマンドを実行する~
% brew help
と入力し、コマンドのヘルプが表示されたらインストールは完了です。
動作テスト
動作テストのため、何かGUIアプリケーションをインストールしてみます。ここではGoogle Driveを例にします。
コマンドを使ってパッケージ名を調べることもできますが、ここではHomebrewのサイトで検索を行ってみます。検索窓で「google drive」と検索すると、以下のページが見つかります。
念のため記載されたURL等を確認し、所望のソフトかどうかを確認しておきます。(似た名前で別のアプリを意図せずインストールしてしまうこともあるため)
インストールコマンドが記載されているので、コピーして貼り付けてみましょう。
brew install --cask google-drive
しばらく待ち「The install was successful.」と表示された後にLaunchpadを開くと、きちんとGoogle Driveがインストールされています。同時にDocsなどのGoogle製アプリもインストールされていますが、これはインストーラを使っても同じようになります。
Homebrewができるのはアプリのインストールまでで、当然ながらその後の設定については各アプリを開き行うこととなりますが、インストーラをダウンロードし実行するよりはかなり手軽になった印象です。
下記コマンドを実行することでGoogle DriveがHomebrewの管理下に入っていることが分かります。
% brew list
==> Casks
google-drive
このリストに入っているアプリは、今後はアップデート、アンインストールなどをHomebrewから行えます。
基本コマンド
パッケージのインストール
パッケージを探します。(Webサイト上で検索してもOK)
% brew search パッケージ名
searchコマンドで探したパッケージ名でインストールを行います。
% brew uninstall パッケージ名
パッケージのアンインストール
% brew uninstall パッケージ名
パッケージのアップデート
Homebrew自体をアップデートします。
% brew update
パッケージのアップデートを行います。パッケージ名を省略すると全てのパッケージをアップデートします。
% brew upgrade パッケージ名
より詳しい使い方
コマンドの詳細や細かいオプションまで知りたい方は公式の情報を参照すると良いと思います。(英語のみ)
日本語でも解説記事はたくさんあるため、ここでは詳細は割愛させて頂きます。
参考文献
Homebrewの仕組みについて参考させて頂きました。
旧来のcaskのデメリットと、現在は改善されたという内容を参考にさせて頂きました。
コメント