LinuxにHomebrewをインストールして使う方法
LinuxにHomebrewをインストールしてPATHを設定し、パッケージを管理。Brewfileでツールを共有し、Linux対応、WSL、Homebrew 7.0の変更点も解説します。
LinuxにHomebrewをインストールするには、ディストリビューションのビルドツールを導入し、brew.shの公式インストールスクリプトを実行します。続いてbrew shellenvをシェルの起動ファイルに追加し、最後にbrew doctorで環境を確認します。
Ubuntu LTSに収録されているneovimやghは、Macで使っているものより1年ほど古いことがよくあります。かといって毎回ソースからビルドするのはすぐに面倒になります。Homebrewを使えば、ユーザーが所有するプレフィックスに最新バージョンをインストールでき、1つのBrewfileで両方のマシンの構成を記述できます。本ガイドでは、インストールから日常的な使い方までを説明します。そのうえで、Brewfile、Homebrew 7.0におけるLinux関連の変更点、WSL、アンインストールについて解説します。
重要なポイント
- Linux版Homebrewは
/home/linuxbrew/.linuxbrewにインストールされます。ホストから利用するのはglibcとgccのみで、それも十分に新しい場合に限られます。 - インストール前に、Debian/Ubuntuでは
build-essential procps curl file gitが必要です。Fedoraではdevelopment-toolsグループとprocps-ng curl fileが必要です。 - BrewfileはRubyとして評価されます。そのため、行に
if OS.linux?やif OS.mac?を付ければ、1つのファイルで両方のプラットフォームに対応できます。 - Homebrew 7.0では、Bubblewrapサンドボックスがカーネルの機能であるLandlockに置き換えられました。追加でインストールするものはありません。
- Windowsでは、HomebrewはWSL 2上でのみ動作します。WSL 1はTier 3で、ネイティブのWindowsはサポート対象外です。
aptやdnfではなくHomebrewをLinuxで使うべきなのはどのような場合か
Homebrewは、ディストリビューションが提供するものより新しいバージョンを使いたいコマンドラインツールに使います。一方、ドライバー、システムライブラリ、サーバーデーモン、その他のシステムパッケージが依存するものには、引き続きapt、dnf、pacmanを使います。Homebrew on Linuxのドキュメントによると、Homebrewがホストに依存するのはglibcとgccのみで、それも十分に新しい場合に限られます。古いディストリビューションでは、Homebrewがglibcとgccの両方を独自に用意します。このため、Homebrewのパッケージはシステムパッケージに影響を与えることなく共存できます。
| Homebrewを使うもの | apt / dnf / pacmanを使うもの |
|---|---|
| 最新バージョンのnode、gh、ripgrep、neovim | GPUドライバー、カーネルモジュール |
| 1つのプレフィックス配下へのユーザー単位のインストール | 共有システムライブラリ |
| Macと共有するBrewfile | systemdで管理するサーバーパッケージ |
| その他のシステムパッケージが依存するもの |
要件とビルドツール
Homebrewには、正常に動作するシステムのCコンパイラーと、ディストリビューション標準の開発ツールが必要です。Homebrewのインストーラーを実行する前に、システムのパッケージマネージャーでこれらをインストールしてください。
# Debian / Ubuntu
sudo apt-get install build-essential procps curl file git
# Fedora
sudo dnf group install development-tools
sudo dnf install procps-ng curl file
# Arch Linux
sudo pacman -S base-devel procps-ng curl file git
Homebrew on Linuxの要件では、正常に動作するシステムのCコンパイラーと、ディストリビューション標準の開発ツールが求められています。後でHomebrewが独自のgccを追加する場合でも、これらを先にインストールしてください。
Support Tiersでは、以下のすべてを満たすものをLinuxのTier 1と定義しています。
- 標準サポート期間内のUbuntu、またはHomebrewのDockerイメージ
- システムのglibcが2.39以降
- カーネルが3.2以降
- ARM64、またはSSSE3対応のx86_64
- デフォルトのプレフィックス、または互換性のあるカスタムプレフィックス
- bottleからのインストール
Debian、Fedora、Archのホストは、Tier 1には該当しません。glibc 2.13〜2.38のシステム(Tier 2)では、Homebrewが独自のglibcをインストールします。その他のプラットフォームはさらに制限されます。Raspberry Piなどの32ビットARMボードにはbottleが提供されず、Tier 3に分類されます。32ビットx86はまったくサポートされていません。
Homebrewをインストールし、PATHに追加する
brew.shのインストーラーを、rootではなく通常のユーザーで実行します。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
インストーラーは、Homebrewを/home/linuxbrew/.linuxbrewにセットアップします。bottleのサポートが最も確実なのは、このデフォルトのプレフィックスです。インストーラーの--pathオプションでは、デフォルト以下の長さ(26バイト)のカスタムプレフィックスを指定できます。ただし、Homebrew 7.0.0のリリースノートでは、デフォルト以外のプレフィックスは現時点では引き続きサポート対象外とされています。特に理由がない限り、デフォルトのまま使用してください。
次に、現在のシェルにHomebrewを読み込み、設定を永続化します。
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> ~/.bashrc
zshを使っている場合は、代わりに~/.zshrcにこの行を追記します。Linux向けドキュメントのshellenv設定のセクションでは、両方のシェルについて説明されています。
続いて、インストールを確認します。
brew doctor
brew install hello
brew doctorは、設定上の問題を報告します。古いディストリビューションでは、最初のbrew installの実行時にHomebrew独自のglibcとgccもインストールされます。
パッケージをインストールし、最新の状態に保つ
パッケージのインストールにはbrew installを使います。Homebrewのパッケージメタデータの更新にはbrew updateを、インストール済みパッケージのアップグレードにはbrew upgradeを使います。
brew install gh ripgrep neovim node
brew update # refresh Homebrew and package metadata
brew upgrade # upgrade installed packages
brewコマンドの前にsudoを付けてはいけません。brewは、必ずプレフィックスを所有するアカウントで実行してください。インストーラーやビルドツールの導入時には管理者権限を求められることがあります。しかし、日常的なインストールやアップグレードは自分のユーザーで実行します。すべてのサブコマンドとフラグは、brewのmanページに記載されています。
Brewfileを使ってLinuxとMacで1つのHomebrew環境を共有する
Brewfileには、マシンに必要なパッケージを列挙します。brew bundleを実行すると、不足しているものがインストールされます。BrewfileはRubyとして評価されるため、任意の行にプラットフォームの条件を付けられます。
# Brewfile
brew "git"
brew "gh"
brew "neovim"
brew "node"
if OS.mac?
cask "firefox"
end
brew "gnupg" if OS.mac?
Linux専用の行には、同じようにif OS.linux?を使えます。Brewfileのドキュメントによると、OS.mac?で条件指定したgnupgは、Linux上ではbrew bundle listに出力されません。Linuxで動作するcaskもありますが、macOS専用のcaskには必ず条件を付けてください。
Brewfileの作成、適用、確認は次のように行います。
brew bundle dump --file=~/dotfiles/Brewfile --force # snapshot what's installed
brew bundle install --file=~/dotfiles/Brewfile # install/upgrade to match
brew bundle check --file=~/dotfiles/Brewfile || brew bundle install --file=~/dotfiles/Brewfile
brew bundle dumpは、インストール済みのformula、cask、tapなど、サポートされているパッケージ種別をBrewfileとして記録します。check || installの行は冪等なので、ブートストラップスクリプトに含めても安全です。checkに--verboseを付けると、満たされていないエントリーを確認できます。
Brewfileに記録されるのは必要なパッケージであり、バージョンではありません。Homebrewは常に各パッケージの最新リリースへと更新されます。そのため、任意の古いバージョンを指定することはできず、brew bundleにはロックファイルもありません。brew bundleによるインストール済み依存関係のアップグレードを止めたい場合は、--no-upgradeを指定するか、HOMEBREW_BUNDLE_NO_UPGRADE=1を設定します。ただし、これはバージョンを固定するものではありません。
brew bundle cleanup --forceの使用には注意してください。Brewfileに記載されていないものがすべてアンインストールされます。
Homebrew 7.0でLinux環境はどう変わるのか
2026年9月13日にリリースされたHomebrew 7.0では、Linuxのサンドボックスにカーネルの機能であるLandlockが使われています。7.0.0のリリースノートによると、7.0.0ではHomebrew 6.0.0で追加されたBubblewrapサンドボックスが廃止され、Landlockに置き換えられました。Landlockは追加パッケージも、Dockerでの昇格された権限も必要としません。Landlockは、特権を持たないプロセスが自身のアクセス範囲を制限できるようにするカーネルの機能です。
| 変更点 | 対応 |
|---|---|
| LandlockがBubblewrapに代わる | インストールは不要 |
| カーネルがLandlockに対応していない | ビルドはサンドボックスなしで実行され、brew doctorに注意喚起が表示される |
HOMEBREW_SANDBOX_LINUX | 無効化済み。シェルのrcファイルから削除する |
HOMEBREW_NO_SANDBOX_LINUX | 非推奨。2027年12月11日に削除予定で、代替となるオプトアウト手段はない |
| ARM64 Linux | Homebrew 5.0.0以降、Tier 1 |
リリースノートによると、HomebrewはLinux 6.1で利用可能なLandlock ABI 2に対応しています。また、カーネルがネットワーク制限を適用できない場合は警告が表示されます。お使いのマシンを確認するには、次のコマンドを実行します。
uname -r # kernel version
brew config # 7.0 reports the Landlock ABI here
brew doctor # shows an advisory if the sandbox is unavailable
grep -n HOMEBREW_SANDBOX_LINUX ~/.bashrc ~/.zshrc
HomebrewはWindowsで動作するのか
WindowsでHomebrewを使えるのは、WSL 2経由の場合のみです。WSL 1はTier 3のプラットフォームで、ネイティブのWindowsはサポートされていません。Linux向けドキュメントでは、WSL 1上ではWSL 1の既知の問題により、Homebrewがインストールする一部の実行ファイルが正しく動作しない可能性があると警告しています。そのうえで、WSL 2への移行を推奨しています。MicrosoftのWSLガイドに従ってディストリビューションをセットアップしたら、その中で前述のLinux向けの手順を実行してください。
Homebrewをアンインストールするには
Homebrewを削除するには、Homebrew/installリポジトリにあるアンインストールスクリプトを使います。最新のコマンドとオプションは、そのREADMEに記載されています。
まとめると、LinuxでのHomebrewのセットアップは4つのステップで完了します。ビルドツールをインストールし、brew.shのスクリプトを実行し、シェルのrcファイルにshellenvを追加し、brew doctorを実行します。その後、Macでbrew bundle dumpを実行します。macOS専用の行にif OS.mac?を付けてから、Linuxマシンでbrew bundle installを実行すれば、両方のマシンで同じツールを揃えられます。
よくある質問
sudoやroot権限なしでLinuxにHomebrewをインストールできますか?
はい、プレフィックスに自分のアカウントで書き込める場合は可能です。シェルインストーラーにはプレフィックスへの書き込み権限が必要です。そのため、管理者に/home/linuxbrew/.linuxbrewを作成して所有権を付与してもらうか、インストーラーの--pathオプションで26バイト以下の互換性のあるカスタムプレフィックスを指定してください。この設定が済めば、formulaのインストールや更新にsudoは一切必要ありません。
HomebrewはUbuntu 22.04向けのbottleを現在も提供していますか?
Ubuntu 22.04に収録されているのはglibc 2.35です。Homebrew 6.0.0でLinuxのベースラインがglibc 2.39に引き上げられて以降、Ubuntu 22.04はTier 2のプラットフォームになっています。Homebrewはこれらのシステム向けに新しいbottleをビルドしなくなりました。代わりに独自のglibcをインストールし、brew doctorにはサポートに関する警告が表示されます。Tier 1のサポートを受けるには、Ubuntu 24.04にアップグレードするか、ghcr.io/homebrew/brewのDockerイメージを使用してください。
LinuxにHomebrewのcaskをインストールできますか?
一部のcaskは動作します。Homebrew 4.5.0でcaskの暫定的なLinuxサポートが追加されました。対象は主に、font-fira-codeなどのフォントや、Linux向けバイナリを提供するcaskです。Homebrew 6.0.0ではAppImageのサポートも追加されました。macOSアプリのみを提供するcaskはLinuxにはインストールできません。共有のBrewfileでは、そうした行にif OS.mac?で条件を付けてください。
CIでLinux版Homebrewを実行するには、どのDockerイメージを使えばよいですか?
ghcr.io/homebrew/brewを使用してください。Homebrew 7.0.0ではghcr.io/homebrew/ubuntu22.04イメージが削除され、その代替としてghcr.io/homebrew/brewが示されています。Support Tiersでは、Homebrewが提供するDockerイメージはLinuxのTier 1構成とみなされます。そのため、bottleを必要とするCIビルドに適した信頼性の高い選択肢です。パイプラインでまだubuntu22.04イメージを参照している場合は、ghcr.io/homebrew/brewに切り替えてください。