「Trust Me, Bro(俺を信じろ)」インストール時代の終焉
長年、Homebrewは「Trust Me, Bro」という精神を核とした設計により、重大なセキュリティ上の欠陥を抱えていました。サードパーティ製のtap(外部パッケージリポジトリ)を追加すると、Homebrewはユーザーへの確認なしに、マシン上で任意の監査されていないRubyコードを実行できていました。これは、パッケージマネージャーが主要な標的となっている現代の「ソフトウェアサプライチェーン攻撃」において、大きく開かれた扉のような致命的な脆弱性でした。
Homebrew 6.0は、ついにその扉を「Tap Trust」によって閉ざしました。この画期的な機能は堅牢なセキュリティチェックポイントとして機能し、公式以外のすべてのtapをロックされた金庫のように扱います。Homebrewがコードを評価または実行する前に、特定のbrew trustコマンドによる明示的なユーザー承認を必須とします。ただし、公式のHomebrew tapはデフォルトで信頼されるため、一般的なインストールにおけるシームレスな体験は維持されます。
これは単なるバージョンアップではなく、Homebrewの成長です。このアップデートにより、Homebrewは単なる利便性のツールから、システムに入るコードを監視する堅牢なセキュリティゲートキーパーへと進化しました。ソフトウェアサプライチェーンの整合性が最優先であり、信頼は暗黙的に想定されるものではなく明示的に獲得されるべきであるという現代の脅威モデルに、ついにパッケージマネージャーが適合しました。これは極めて重要な進化です。
ターミナルが許可を求めるように
Homebrew 6.0は、デフォルトで新しい「ask mode」を採用し、ユーザーエクスペリエンスを即座に再定義しました。今後はbrew installやbrew upgradeを実行すると、インストールや変更を予定しているすべてのパッケージと依存関係の包括的な概要が表示されます。この重要なステップにより、実行前にユーザーの明示的な「yes」が求められ、マシンに何がインストールされるかについてユーザーが最終的な権限を持つことになります。
許可を求めるだけでなく、Homebrew 6.0は熟練した開発者のための強力な新ユーティリティも提供します。brew executeは「Homebrew版のnpx」として機能し、永続的なインストールという煩雑さを伴わずにツールを一度だけ使用することを可能にします。また、プロアクティブなセキュリティ対策として、brew vulnsがインストール済みのパッケージをスキャンし、既知のセキュリティアドバイザリと照合します。これは今日の脅威環境において不可欠な防御策です。
パフォーマンス面でも、内部的に大幅なアップグレードが行われました。内部の「JSON API」がデフォルトとなり、断片化されたネットワーク呼び出しが、すべてのメタデータを一度の効率的なダウンロードで取得する方法に置き換わりました。この変更によりbrew updateの動作が劇的に高速化され、パッケージマネージャーの操作感が目に見えて軽快になりました。Homebrew 6.0は単なるセキュリティ向上だけでなく、よりスマートで高速、かつ責任あるターミナル体験を提供します。
進歩の代償:6.0で壊れるもの
Homebrew 6.0のセキュリティアップグレードは間違いなく不可欠ですが、既存の自動化プロセスに大きな摩擦をもたらします。最も直接的な影響は「CI/CDパイプライン」です。数多くのGitHub Actionsワークフローで一般的な最初のステップであるbrew doctorは、信頼されていないサードパーティ製のtapを検出すると致命的なエラーを返すようになりました。これは単なる警告ではなくエラーであり、これまでスムーズに実行されていたビルドを突然停止させ、貴重な開発時間を奪うことになります。
「Ask mode」もまた、自動化における静かな脅威となります。以前のHomebrewバージョン向けに設計されたスクリプトは、brew installが非対話的に進行することを前提としていることが多くあります。現在、これらのスクリプトは、無人のCIランナーが提供することのない「yes」を待ち続け、永久にハングアップする可能性があります。この予期せぬ停止は、ビルド時間を浪費させ、インフラ全体に連鎖的な障害を引き起こす可能性があります。
このソリューションには迅速な対応が求められます。CI設定を更新してください。開発者は、セットアップ内で brew trust を使用して必要なタップ(taps)を明示的に信頼し、ビルドに不可欠なサードパーティ製パッケージリポジトリを承認する必要があります。さらに、非対話型インストールを行う場合、スクリプトに --force-yes や --no-ask といったコマンドラインフラグを組み込み、新しいプロンプトをバイパスして無限の停止を防ぐ必要があります。これにより、Homebrewの新しいセキュリティ体制に準拠し、自動化プロセスを円滑に実行できます。これらの破壊的変更と修正の詳細については、公式の 6.0.0 — Homebrew リリースノートを参照してください。
この記事が気に入ったら、毎朝同じようなものをメールで受け取れます。
1日1通 · 2クリックで解除 · サードパーティのトラッキングなし
今後の展望
Macユーザーにとっての今後の道筋は、一部の人には少し厳しいものかもしれませんが、より明確になっています。Homebrew 6.0は、今後数年間にわたる Intel Macs の非推奨化スケジュールを明確に示しており、Apple Siliconへの完全移行は避けられない流れです。Mシリーズチップを搭載したMacのユーザーは安心してください。Homebrewは今後登場するM5チップに対しても初日から互換性を確保しており、開発ワークフローが最先端の状態に保たれるよう、変わらぬ最高レベルのサポートを提供し続けます。
また、根強く残る「HomebrewがRustで書き直される」という神話のような噂を払拭しておきましょう。新しい高速な言語への魅力は大きいものですが、プロジェクトの開発者は、実戦で鍛え上げられた成熟した Rubyコードベース を維持することを固く決意しています。Rustの実験はあくまで実験であり、現在は終了しています。コアは今後もRubyであり続け、安定性と慣れ親しんだ環境を保証します。
結局のところ、Homebrew 6.0は単なるバージョンアップを超えた、戦略的な転換点です。単にソフトウェアを素早く入手するための「とりあえず信頼して」という便利なスクリプトから、現代の開発に不可欠な セキュリティ意識の高いプラットフォーム へと進化しました。これは、サプライチェーンの脅威モデルにようやく追いつき、明示的な同意を求めることでその成熟度を証明するパッケージマネージャーです。もはやスピードだけではなく、責任あるパワーが重要視されています。
よくある質問
Homebrew 6.0における最大の変更点は何ですか?
目玉機能は「Tap Trust」です。これは、brew trust コマンドによる明示的な許可なしに、サードパーティ製リポジトリ(taps)が任意のコードを実行することを防ぐセキュリティメカニズムです。ソフトウェアのサプライチェーン攻撃に対する主要な防御策となります。
Homebrew 6.0にアップデートした後、CI/CDパイプラインが失敗するのはなぜですか?
パイプラインが失敗する原因は主に2つ考えられます。1) 新しい「Tap Trust」機能により、信頼されていないサードパーティ製タップが見つかると brew doctor がエラーを返します。2) 新しい「ask mode」のデフォルト設定により、ユーザーの確認を求めるプロンプトが表示され、自動化スクリプトが停止してしまいます。設定内でタップを明示的に信頼し、フラグを使用してプロンプトを無効にする必要があります。
brew execute とは何ですか?
brew execute は npx に似た新しいコマンドで、Homebrewのフォーミュラをシステムに永続的にインストールすることなく、一度だけツールを実行できます。ツールの試用や、頻繁には使わないコマンドを実行するのに便利です。
HomebrewはIntel Macsのサポートを終了するのですか?
はい、Homebrew 6.0ではIntel Macsの非推奨化スケジュールが示されています。バイナリパッケージ(bottles)のサポートは2026年9月に終了し、2027年9月にはコードの完全削除が予定されています。Apple Siliconユーザーには影響ありません。

