HomebrewをWindows上で使えるようにする

Homebrewは元々はMac用のパッケージマネージャーです。そのHomebrewがv2.0からLinuxを正式サポートしました。同時に、WSLも正式にサポートしました。

この記事では、WSL上でHomebrewをセットアップする方法を解説します。

スポンサーリンク

Homebrewについて

HomebrewはmacOS上で広く使われているパッケージマネージャーです。Homebrew経由でインストールすると、次のような良いことがあります。

  • 依存関係があるソフトを同時にインストールできる
  • インストールしたソフトの更新やアンインストールが簡単にできる

Windowsの場合は、システム設定の「アプリと機能」から簡単にアンインストールができるので、アンインストールできる部分のメリットはあまり感じないかもしれません。

しかし、ソフトの更新や依存関係の解決などはメリットを感じるのではないでしょうか。

また、インストーラを使えば簡単にインストールできるから不要だという考えもあると思います。Homebrewを使うと、コンソールでコマンドを叩くだけで、以下を実行してくれます。インストーラをダウンロードしてインストールするよりも簡単ではないでしょうか。

  1. 指定したパッケージ本体をダウンロードする
  2. 依存関係があるパッケージをダウンロードする
  3. ダウンロードしたパッケージを順番にインストールする
  4. 必要なスクリプトの生成や実行を行う

WSL上だとメリットはあるのか?

WSL上で動作しているLinuxディストリビューションには元々パッケージマネージャーが入っています。メリットはあるのでしょうか?実はあります。例えば、次のような点です。

  • Linuxディストリビューションに依存せずに、パッケージを使用できる
  • ホームディレクトリ配下にインストールされるので、システム環境を汚染しない

WSL上で使用するLinuxディストリビューションには、apt-getなどのシステムレベルのパッケージマネージャーがあります。しかし、何がインストールできるかはディストリビューションにより異なります。Homebrew経由の場合は、Homebrewが解決するのでディストリビューションに依存しません。

Windows版の動作環境

Windows版は、WSL (Windows Subsystem for Linux) で動作します。WSLはLinuxのバイナリをWindows上で動かす互換レイヤーです。そのため、正確にはHomebrewのWindows版が登場したのではなく、Linux版が登場し、WSL上でも正式にサポートされているというのが正しいでしょう。

WSLが必要になるので、先にWSLをセットアップする必要があります。WSLのセットアップ方法については、次の記事をご覧ください。

関連記事

昨年の2019年2月2日にリリースされたHomebrew v2.0から、公式サポート環境にWindows 10 (WSL) と Linux が加わりました。 この記事では、Homebrewで必要になるWSLのセットアップ方[…]

Homebrewをインストールする

WSLのシェルを起動します。Homebrewのページを開き、「インストール」のところに書かれている1行のスクリプトをコピーして、シェルで実行します。途中でsudoを実行するので、パスワードを聞かれます。先ほどUNIX用のパスワードを入力しましょう。

Homebrew

The Missing Package Manager for macOS (or Linux).…

次のように表示されたら、RETURNキーを押します。

Press RETURN to continue or any other key to abort

Homebrewのダウンロードやインストールが実行されます。

macOS上で実行するときは、これだけで完了なのですが、WSL上でもう少し作業が必要です。

brewやHomebrewでインストールしたパッケージがPATHに含まれるようにするため、次のページの「Install」のところに書かれているスクリプトを実行します。

Homebrew Documentation

Documentation for the missing package manager for macOS.…

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はバイナリーインストールができないときに、ソースからビルドしてインストールを行うのですが、そのため、開発環境が入っていないためです。

指示されているようにgccのインストールを試みます。

$ brew install gcc

しかし、これもエラーになってしまいました。エラーメッセージは同様です。開発環境が必要と表示されています。

Homebrew自体が動作するためには、開発環境が必要です。

Clangをインストールする

Ubuntuなので、apt-getでインストールできます。Homebrewのメリットとしてシステム汚染しないことを挙げましたが、開発環境だけは必要でした。

gccでも良いのですが、好みでClangをインストールすることにしました。次のように実行します。

$ sudo apt-get update
$ sudo apt-get install clang

依存関係を見ていると、gccの一部のパッケージもインストールされたようです。

改めて実行する

開発環境をセットアップしたので改めて実行してみましょう。

$ brew install hello

依存関係のパッケージのビルドやインストールが行われます。完了したら実行してみましょう。

$ hello
Hello, world!
最新情報をチェックしよう!
スポンサーリンク
>現役のプログラマーが書くプログラミング情報

現役のプログラマーが書くプログラミング情報

日々の開発の中での学びや分かったこと、調べたことなどを書いていくブログです。

CTR IMG