【備忘録】エンジニアでもプログラマーでもないけどHomebrewでMacアプリを管理したい!

以前M1 Mac miniを買った時に書いたこの記事で「Homebrewのことはインストールしたソフトと合わせて別記事にする予定」って書いていたんですが、記事化するのをすっかり忘れて丸1年放置していました

因にZIGリアルブラッシュの記事は書きます宣言してから丸2年放置してますorz …さすがに放置しすぎ。

おことわり

この記事は導入時にターミナルを使う作業であるため、PC/Macに詳しくない方には非推奨です。普段ターミナルを触らない方向けにも分かりやすく書いたつもりですが、「ターミナル? なにそれおいしいの?」という方は、この方法でアプリを入れるのは絶対にやめましょう。

以前にも書きましたが、Homebrewはあくまで「有志の人たちが作っている自動化の仕組み」であり、Apple公式の機能ではありません。Homebrewを使ったことにより発生したトラブルは基本的に自己責任となりますので、不安な方は正規の方法で管理するのをお勧めします。

Contents

Homebrewとは

HomebrewとはmacOSとLinuxで利用できる「パッケージ管理システム」というもののひとつです。

実行ファイルや設定ファイル・ライブラリなどを1つのファイルとしてまとめているものを「パッケージ」と呼ぶのですが、このHomebrewを使うことで、さまざまなパッケージのインストール/アンインストール作業からバージョン・他パッケージとの整合性・依存関係などを一元的に管理することが可能になります。

Windowsにはないの?

HomebrewはWindowsでも一応使えないことはないのですが、Git BashやWindows Subsystem for Linux(通称WSL/Windows上にLinux環境を構築できる機能)といった、Unix系またはLinux系コマンドラインツールの導入が別途必要です。macOS/Linuxよりも導入難易度が非常に高いため、あまりおすすめしません。

Windowsの場合、Homebrewよりも以下のパッケージ管理システムを使う方が一般的なようですが、私の手持ちのThinkPadではパッケージ管理システムを導入していないので、説明は割愛します。

Homebrewのインストール

インストール用スクリプトを実行

では早速インストールしていきます。Homebrewのサイトトップに

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

こんな感じのソースコードが置いてあると思いますが、これがHomebrewをインストールするためのスクリプトになります。インストールスクリプトをコピーし、ターミナルを立ち上げてペースト→Return。

このインストールスクリプトは記事執筆当時のものです。今後のバージョンアップでスクリプトに変更が出る可能性もありますので、必ずHomebrew公式サイトのものを使用してください。

途中でインストールを続けるかを聞かれた時にはReturnで先に進めます。またパスワードの入力を求められたら、Macのロック画面を解除するパスワードを入力してからReturnで。

Xcode Command Line Toolsのインストール

インストール用スクリプトを実行した時点でXcode Command Line Toolsがインストールされていなければ、Homebrewのインストールの途中でXcode Command Line Toolsをインストールすることになります。指示に従ってReturnを押すとパスワードの入力を求められるので、パスワードを入力してReturn。これでXcode Command Line Toolsがインストールされます。

Xcode Command Line Toolsのインストールが完了すると、再びHomebrewのインストールプロセスが再開されますので、そのまま待ちます。最後の方にInstallation successful!と表示されていれば、Homebrewのインストールはひとまず成功です。

環境PATHを通す

ただインストールしただけではbrewコマンドを実行しても「そのコマンドは見つかりませんよ」って怒られるだけで、まだHomebrewを使えるようにはなっていません。なので、brewコマンドを実行する際に必要な「環境PATH」を通します。

PATHを通す方法は、インストールが完了した時に表示されるNext steps:メッセージ内に記載があります。記載されているコマンド(概ね以下のような記述が書いてあるはず)をそのままコピペしてReturnでOKです。

echo >> /Users/(ユーザー名)/.zprofile
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/(ユーザー名)/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"
注意

上記コマンドは私がインストールした時に出たものであり、あくまで一例です。動作環境やインストール時のHomebrewのバージョンなどによって表示される内容が異なりますので、これをそのままコピペした場合はエラーが起こる可能性があります。

実際にPATHを通す時は、必ず自身のターミナル上で表示されたコマンドを実行してください。

例えばインストーラーパスはApple Silicon Macでは/opt/homebrew/bin/ですが、Intel Macでは/usr/local/bin/です。その為、上のコマンドをIntel Mac版で実行するとエラーになります。

これでHomebrewへのPATHが通ったはずなので、Homebrewのバージョンを確認するコマンドを打ってみます。

brew -v

#またはこちらを入力(どちらかでOK)
brew --version

Homebrew X.X.XX といった形式のバージョン表記が返ってきたらインストール作業は終了になります。

Homebrewでよく使うコマンド

ここからはHomebrewでよく使うコマンドをご紹介します。

参考サイト

パッケージ/アプリのインストール

実際にインストールする時は [ ] は削除してね!

brew install [パッケージ/アプリ名]

#記述例
brew install mas

Homebrewを使って、パッケージやアプリをインストールする時に使うコマンド。ちなみに、記述例であげているmasは、後述するMac App Storeのアプリをコマンドラインで管理出来るようにするためのパッケージ。

macOSのアプリやフォント、オープンソースではないソフトウェアなどをインストールする場合は、--caskオプションを付けて書きます。例えばFirefoxをインストールしたい場合は以下のように記述。

brew install --cask firefox

パッケージ/アプリのアンインストール

brew uninstall [パッケージ/アプリ名]

コマンドでパッケージやアプリをアンインストールしたい場合はこちら。私はアンインストール時にはAppCleanerを使うので、実はこのコマンドあんまり使った記憶がないです…

インストール済みのパッケージを確認

brew list

brew installでインストールしたパッケージ、及びMac App Storeアプリ以外のMacアプリの一覧を表示。

==> Formulae
mas

==> Casks
1password		dropbox			the-unarchiver
affinity-photo		firefox			visual-studio-code
appcleaner		imageoptim		warp
applite			iterm2			zen
brave-browser		malwarebytes
canva			shottr

実行するとこんな感じでリストアップしてくれます。なお、masでインストールしたMac App Storeアプリのリストを出したい場合は

mas list

を使います。

パッケージのアップデート

# 個別に更新したい場合
brew upgrade [パッケージ/アプリ名]

# 更新が必要な全パッケージを更新したい場合
brew upgrade

brew installでインストールしたパッケージのアップデートを行います。パッケージ名を指定せずに実行した場合は、更新が必要な全パッケージをまとめて更新します。私はまとめて更新派なので個別指定はしません。

なお、このコマンドではHomebrew本体のアップデートはしません。Homebrew本体をアップデートするには、後述のbrew updateを使います。

GUIアプリ(Cask)のアップデート

個別に更新したい場合

まずは対象となるアプリがないか探します。

brew outdated --cask --greedy

最新バージョンではないアプリがある場合は、現バージョンと最新バージョンを取得した上で表示されるので、以下のように書いて実行。

brew upgrade [アプリ名] --cask --greedy

インストール済みのアプリをすべて強制アップグレードしたい場合

brew upgrade --cask --greedy

いちいち個別指定するのが面倒なので、私はこちらのコマンドで一括強制アプデしています。しかしこのコマンド、バージョン指定が「latest」となっているCaskをも強制的に再ダウンロード/インストールしようとするので、もしかして実はHomebrew的にはあんまりよくないのか…? と思わなくもない…

意図して古いバージョンを使っている人は個別更新の方がいいです。

Homebrew本体のアップデート

brew update

こちらはHomebrew本体のみをアップデートするコマンド。brew upgradeと間違えやすいので注意。

不要になったファイルを消去する

brew cleanup

アップグレード後に不要になった旧バージョンのファイルやキャッシュなどを削除出来ます。私はアップグレード後に必ず実行してます。

Mac App StoreのアプリをHomebrewのmasで管理してみる

Mac App Storeで提供されているアプリも、mas-cli(以下mas)をというパッケージをインストールすることで、Homebrew上で管理出来るようになります。Mac App StoreアプリまでわざわざCUIで管理せんでもええのでは…というツッコミが来そうではありますがw これが意外と便利なんですな。

brew install mas

上記コマンドを実行してmasをインストールしたら、早速Mac App Storeアプリをインストールしてみましょう。

Mac App Storeアプリを探す

mas search [アプリ名]

# 記述例: LINEを探したい時(小文字でも検索可)
mas search LINE

例えばLINEを探した時はこのような結果が返ってきます(検索結果がだいぶ長いので最初の5項目より下は割愛)。

mas search LINE
   310633997  WhatsApp Messenger                          (25.25.74)
   539883307  LINE                                        (9.12.1)
  1373844471  VPN Lumos:Japan・せきゅりてぃあぷり                   (0.4)
  1335335588  ビデオプレーヤー メディアプレーヤー                          (1.1.18)
  6447544433  LINE WORKS – ビジネスチャット                       (4.3.2)

ハイライトで表示されているのがLINEです。アプリ名の左にある539883307という謎の数字列がありますが、これはアプリインストール/アップデートの際に必要になる「アプリID」なので、忘れずに控えておきましょう。

Mac App Storeアプリのインストール

mas install [アプリID]

インストールしたいアプリのIDを確認したら、上記コマンドにアプリIDを記入して実行。前述のLINEの場合だと、以下の記述になります。

mas install 539883307

ただし、初めてアプリをインストールする場合、上記コマンドではダメらしいので、

mas purchase 539883307

とします。

Mac App Storeアプリのアップデート

# 個別に更新したい場合はこちら
mas upgrade [アプリID]

# 一括更新したい場合はこちら
mas upgrade

この場合も個別更新する際にはアプリIDが必要になるので、更新の前にmas outdatedコマンドを実行します。でもやっぱり個別に更新するのは面倒くさいので(ry

なお、masではMac App Storeアプリのアンインストールは出来ません。以前は出来たらしいのですが、現在はOS側の権現でエラーが出てしまいます。

Homebrewではインストール出来ないもの/避けた方がいいもの

私が使うものだと

  1. Adobe Creative Cloud
  2. CLIP STUDIO PAINT

ではHomebrewでインストール出来ませんでした。Caskに登録はされているのですが、一度Homebrewからインストールしたら正常にインストールされていなかったみたいでエラーになり、結局手動でやり直しました。グラフィック系アプリに関しては、素直に公式のインストーラーを使いましょう。

あと、Macでも愛用者が多いと思われるGoogle日本語入力は、ユニバーサルバイナリに対応していないので、事前にRosetta 2が入っていないとHomebrew経由ではインストール出来ません。ただ、インストーラーで入れようがHomebrewで入れようが、結局Rosetta 2を入れなければならないことに変わりはないので、Rosetta 2を入れたくない人には正直導入しづらくなった感。はよユニバーサルバイナリ化してくれ

ターミナルの黒い画面、やっぱ怖いんですが…

…という方の為に、Homebrew Caskでインストール可能なアプリをMac App Storeライクでインストール/アンインストール/管理が出来るようにする「Applite」というアプリがあります。

Homebrew Caskでインストールしたアプリをこんな感じで管理出来るようになりますが、Homebrew本体の細かいメンテナンスやCask以外のパッケージの更新はAppliteでは出来ないので、ターミナルとの併用が必須です。

おわりに

マシンをIntelからApple Siliconにしたタイミングで、アプリの管理を出来るだけHomebrewでやろうと始めて1年経ちましたが、アップデート作業をコマンド1つで完結出来るのが便利すぎました。

基本的にターミナルの黒い画面と睨めっこになるので初心者向けではありませんが、興味あるね! という腕に覚えのある方はチャレンジしてみてもいいかなと思います。ただし、繰り返しになりますがApple公式のツールではないので、何があっても自己責任で…!

長くなってしまったので、インストールしたアプリは別記事で紹介させてください…

Contents