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のセットアップ方法については、次の記事をご覧ください。

Homebrewをインストールする

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

macOS(またはLinux)用パッケージマネージャー — Homebrew

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

Press RETURN to continue or any other key to abort

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

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

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

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

指示されているように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!

投稿者プロフィール

林 晃
林 晃macOS/iOSアプリ/SDK/ミドルウェア開発が専門の開発者
アールケー開発代表。macOS/iOSアプリ/SDK/ミドルウェア開発が専門の開発者。ObjC/Swift/C++使い。豊富な開発実務経験を基に、教育コンテンツ開発、技術書執筆、技術指導、技術セミナー講師、企業内研修講師、行政・自治体職員研修講師も行います。

基礎から学ぶMetal


「基礎から学ぶMetal」を執筆しました。本書はMetalを使ってGPUプログラミングを行うための最初のステップを解説するMetalの解説書です。

私が初めてGPUプログラミングを行ったとき、どこから手をつけて、学んでいけば良いのか分からず呆然としました。もし、あのとき、これを教えてくれればという部分を解説しました。本書で解説している部分はMetalの基礎となる部分で、Metalを使うときに必ず触れることになる部分です。

詳細

関連記事

  1. WSL (Windows Subsystem for Linux) の…

最近の著書

  1. 基礎から学ぶ SwiftUI

最近の記事