Homebrewは元々はMac用のパッケージマネージャーです。そのHomebrewがv2.0からLinuxを正式サポートしました。同時にWSL(Windows Subystem for Linux)も正式にサポートしました。
この記事では、WSL上でHomebrewをセットアップする方法を解説します。
記事の更新情報
2022年7月24日
- Windows 11 Pro 21H2での動作を確認しました。 (記事作成時はWindows 10でした)
- 古いコマンドを新しいコマンドに置き換えました。
- インストール時に発生するエラー
curlエラーについて追記しました。 - インストール時の操作を詳しくしました。
- 「開発環境をインストールするべきか」を追加しました。
Homebrewについて
HomebrewはmacOS上で広く使われているパッケージマネージャーです。Homebrew経由でインストールすると、次のような良いことがあります。
- 依存関係があるソフトを同時にインストールできる
- インストールしたソフトの更新やアンインストールが簡単にできる
Windowsの場合は、システム設定の「アプリと機能」から簡単にアンインストールできるソフトが多いので、アンインストールできる部分のメリットはあまり感じないかもしれません。
しかし、ソフトの更新や依存関係の解決などはメリットを感じるのではないでしょうか。
また、インストーラを使えば簡単にインストールできるから不要だという考えもあると思います。Homebrewを使うと、コンソールで1つのコマンドを実行するだけで、以下を実行してくれます。インストーラをダウンロードしてインストールするよりも簡単ではないでしょうか。
- 指定したパッケージ本体をダウンロードする。
- 依存関係があるパッケージをダウンロードする。
- ダウンロードしたパッケージを順番にインストールする。
- 必要なスクリプトの生成や実行を行う。
WSL上でメリットはあるのか?
WSL上で動作しているLinuxディストリビューションには元々パッケージマネージャーが入っています。ではメリットはあるのでしょうか?実はあります。たとえば、次のような点です。
- Linuxディストリビューションに依存せずに、パッケージを使用できる
- ホームディレクトリ配下にインストールされるので、システム環境を汚染しない
WSL上で使用するLinuxディストリビューションには、aptなどのシステムレベルのパッケージマネージャーがあります。しかし、インストール可能なパッケージはディストリビューションにより異なります。Homebrew経由の場合は、Homebrewが解決するのでディストリビューションに依存しません。
Windows版の動作環境
Windows版は、WSL(Windows Subsystem for Linux)で動作します。WSLはLinuxのバイナリをWindows上で動かす互換レイヤーです。そのため、正確にはHomebrewのWindows版が登場したのではなく、Linux版が登場し、WSL上でも正式にサポートされているというのが正しいでしょう。
WSLが必要になるので、先にWSLをセットアップする必要があります。WSLのセットアップ方法については、次の記事をご覧ください。

Homebrewをインストールする
WSLのシェルを起動します。HomebrewのWebページを開き、「インストール」のところに書かれている1行のスクリプトをコピーして、シェルで実行します。
macOS(またはLinux)用パッケージマネージャー — Homebrew
たとえば、関連記事に従ってインストールした場合はUbuntuを起動し、表示されたシェルで右クリックすると、コピーしたスクリプトが貼り付けられます。
途中でsudoを実行するので、パスワードを聞かれます。WSLセットアップ時に設定したUNIX用のパスワードを入力してください。
==> Checking for `sudo` access (which may request your password)...
==> Select a Homebrew installation directory:
- Enter your password to install to /home/linuxbrew/.linuxbrew (recommended)
- Press Control-D to install to /home/akira/.linuxbrew
- Press Control-C to cancel installation
[sudo] password for akira:また、タイミングが悪いと次のようにホストが見つからないというエラーが表示されることがあります。その場合は、再度実行してください。
curl: (6) Could not resolve host: raw.githubusercontent.com次のように表示されたら、RETURNキーを押します。
Press RETURN/ENTER to continue or any other key to abortHomebrewのダウンロードやインストールが実行されます。
macOS上で実行するときは、これだけで完了なのですが、WSL上ではもう少し作業が必要です。
brewやHomebrewでインストールしたパッケージが、環境変数の`PATH`に含まれるようにするため、次のページの「Install」のところに書かれているスクリプトを実行します。(1行ずつコピーして実行します)
Homebrew on Linux — Homebrew Documentation
test -d ~/.linuxbrew && eval "$(~/.linuxbrew/bin/brew shellenv)"
test -d /home/linuxbrew/.linuxbrew && eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
test -r ~/.bash_profile && echo "eval \"\$($(brew --prefix)/bin/brew shellenv)\"" >> ~/.bash_profile
echo "eval \"\$($(brew --prefix)/bin/brew shellenv)\"" >> ~/.profile完了したら、次を実行します。
$ brew install hello開発環境が入っていないためにエラーになる
私の環境ではエラーになってしまいました。
Error: patchelf must be installed: brew install patchelf
Warning: Bottle installation failed: building from source.
Error: The following formula
patchelf
cannot be installed as binary package and must be built from source.
Install Clang or run `brew install gcc`.Homebrewはバイナリーインストールができないときに、ソースからビルドしてインストールを行います。そのため、WSL側に開発環境が入っていないとエラーになります。
指示されているようにgccのインストールを試みます。
$ brew install gccしかし、ここでもエラーが発生しました。エラーメッセージは先ほどと同様で、開発環境の存在が必要と表示されました。
Homebrew自体が動作するためにも、開発環境が必要です。
clangをインストールする
Ubuntuなので、aptでインストールできます。Homebrewのメリットとしてシステム汚染しないことを挙げましたが、開発環境だけは必要であることがわかりました。
gccでも良いのですが、私の好みでclangをインストールすることにしました。次のように実行します。
$ sudo apt update
$ sudo apt install clang依存関係を見ていると、gccの一部のパッケージもインストールされたようです。
開発環境をインストールするべきか?
上にも書いた通り、Homebrewはバイナリインストールができないときにソースからビルドしてインストールします。インストール時にもgccのインストールを推奨すると表示されています。Ubuntu 20.04.4 LTSではエラーが起きなかったのですが、gccかclangのどちらかをインストールしておいた方が良いと思います。
あらためて実行する
開発環境をセットアップしたのであらためて実行してみましょう。
$ brew install hello依存関係のあるパッケージのビルドやインストールが行われます。完了したら実行してみましょう。
$ hello
Hello, world!










