Terraformをmacにインストール|brew tapが要る理由と最新版のずれ

macOSにTerraformを入れる記事のアイキャッチ。くすんだ色の空の配布棚に通行止めと「Not Found」の赤いラベルが付き、右のアンバー色の「HashiCorp Tap」の棚から箱が出て「Installed」の緑のラベルが付いている。左下に「Terraform on macOS」「Why brew tap Is Required」の文字 標準の配布元からは取れず、HashiCorp の配布元を足して初めて入る流れを表したアイキャッチ 環境構築

macOS に Terraform を入れようとして brew install terraform を実行すると、何も見つからずに止まります。コマンドの打ち間違いではありません。Homebrew の標準の配布元から、Terraform が消えているためです。

本記事では、macOS に Terraform をインストールする手順を説明します。あわせて、なぜ brew tap というひと手間が要るのかを、Homebrew 側の記録をたどって確かめました。入れたあとに最新版へ追いつかない理由もまとめています。

本記事のまとめ

  • macOS では brew tap hashicorp/tap と brew install hashicorp/tap/terraform の 2 コマンドで入ります
  • brew install terraform は通りません。Homebrew の標準の配布元から formula が削除されているためです
  • 削除の発端は Terraform 1.6.0 のライセンス変更で、1.5.7 が従来ライセンス最後の版でした
  • 入れたあと brew upgrade しても、公式の最新版には届かないことがあります

macOSにTerraformをインストールする手順

次の 2 行を実行すれば入ります。1 行目で HashiCorp の配布元を Homebrew に登録し、2 行目でそこから Terraform を取ってきます。

brew tap hashicorp/tap
brew install hashicorp/tap/terraform

なぜ素直に brew install terraform ではいけないのか、という点が本記事の主題です。先に手順を済ませてから、理由を説明します。

前提と確認した環境

前提は Homebrew が入っていることだけです。Homebrew は macOS 向けのパッケージマネージャーで、コマンド 1 つでツールを導入・更新できます。まだ入れていない場合は、先に次の記事を参考にしてください。

Homebrew のインストール方法

本記事の内容は、次の環境で実際に実行して確かめました。2026 年 10 月 10 日時点の結果です。

項目値
OSmacOS(Apple Silicon)
Homebrew6.0.22
Terraform1.14.8

2つのコマンドが何をしているか

1 行目の tap は、Homebrew に配布元を追加する機能です。Homebrew は既定では標準の配布元しか見ません。HashiCorp が自前で配っている Terraform を使うには、その配布元を先に教える必要があります。

コマンド何をするか
brew tap hashicorp/tapHashiCorp が運営する配布元を Homebrew に登録する
brew install hashicorp/tap/terraform登録した配布元から Terraform を取得して入れる

2 行目でパッケージ名を hashicorp/tap/terraform と完全な形で書いているのは、配布元を明示するためです。この書き方は後述する更新の場面でも必要になります。

brew install terraform では入らない

配布元を足さないまま brew install terraform を打つと、パッケージが見つからずに失敗します。権限の問題でもネットワークの問題でもありません。Homebrew が探す先に、そもそも存在しないからです。

私の環境で brew search terraform を実行すると、名前に terraform を含むパッケージは並ぶのに、素の terraform だけが出てきません。出てくるのは配布元付きの hashicorp/tap/terraform のほうです。

$ brew search terraform
cf-terraforming
hashicorp/tap/terraform
hashicorp/tap/terraform-ls
terraform-docs
terraform-ls
terraform-provider-libvirt
terraformer
(抜粋)

Homebrew のパッケージ一覧ページでも同じことが確かめられます。formulae.brew.sh の terraform のページは、現在 404 を返します。

なぜbrew tap hashicorp/tapが必要なのか

Terraform のライセンスが変わり、Homebrew の標準の配布元が新しい版を受け入れられなくなったからです。段階を踏んで、最終的にパッケージそのものが削除されました。

2023 年 8 月、HashiCorp は Terraform のライセンスを BUSL 1.1 に変更すると発表しました。BUSL は Business Source License の略で、ソースコードは公開されるものの、商用の競合利用に制限が付くライセンスです。オープンソースの定義には当てはまりません。

変更前は MPL 2.0 というオープンソースライセンスでした。最後の MPL 版が 1.5.7 で、1.6.0 以降が BUSL 1.1 です。Homebrew の標準の配布元はオープンソースのみを受け入れる方針のため、1.6.0 以降を取り込めなくなりました。

homebrew-core の terraform formula が、2023-09-07 の 1.5.7 を最後に deprecate(2024-04-04)、disable(2025-04-12)、削除(2026-04-13)と進み、1.6.0 以降は BUSL-1.1 のため受け入れられなくなった流れを示した時系列図
Terraform のライセンスが BUSL-1.1 に変わってから、Homebrew の標準の配布元で formula が削除されるまでの流れ

Homebrew 側の記録を確認すると、削除までは 3 段階で進んでいました。警告を出すだけの段階が約 1 年、インストールを止める段階がさらに 1 年、そのあとファイルごと削除されています。

日付何が起きたか
2023-09-07Terraform 1.5.7 リリース。MPL 2.0 最後の版
2024-04-04警告が出るようになる。インストールはまだできる
2025-04-12インストールができなくなる
2026-04-13パッケージの定義ファイルごと削除される

削除される直前の定義ファイルには、バージョンを上げてはいけない理由がコメントで書き残されていました。参照先として HashiCorp の発表と Homebrew のライセンス方針が挙げられています。

# NOTE: Do not bump to v1.6.0+ as license changed to BUSL-1.1
url "https://github.com/hashicorp/terraform/archive/refs/tags/v1.5.7.tar.gz"
license "MPL-2.0"

deprecate! date: "2024-04-04", because: "changed its license to BUSL on the next release"
disable!   date: "2025-04-12", because: "changed its license to BUSL on the next release"

一次情報は HashiCorp の発表と Homebrew のライセンス方針にあります。つまり brew tap は余計な手間ではなく、HashiCorp 自身が配っている場所を使うための唯一の入口です。

ここで注意したいのが、公開時期の古い解説記事です。削除されたのは 2026 年 4 月で、それ以前は「古い 1.5.7 が入ってしまう」状態でした。今は 1.5.7 すら入りません。手順をなぞって止まったときは、記事の公開時期を見てください。

インストールできたかを確認する

確認は terraform -v でバージョンが表示されれば十分です。表示されない場合に備えて、どこに入ったかを確かめる方法も書いておきます。

Homebrew がツールを置く場所は、Apple Silicon と Intel で異なります。決め打ちで覚えず、brew --prefix で聞くのが確実です。私の環境(Apple Silicon)では /opt/homebrew が返りました。

$ terraform -v
Terraform v1.14.8
on darwin_arm64

$ brew --prefix
/opt/homebrew

$ which -a terraform
/opt/homebrew/bin/terraform

$ ls -l /opt/homebrew/bin/terraform
lrwxr-xr-x ... /opt/homebrew/bin/terraform -> ../Cellar/terraform/1.14.8/bin/terraform

確かめておくとよい点が 2 つあります。

  • which -a terraform の結果が 1 行だけである。複数行なら、別の経路で入れた Terraform と競合している
  • 実体の置き場所が Cellar/terraform/ である。配布元を足して入れても、保存先は素の名前になる

入れたあと最新版にならないことがある

HashiCorp の配布元は、公式のリリースに少し遅れて追従します。brew upgrade で上がるのは配布元が用意している版までで、公式の最新版とは一致しないことがあります。

私の環境で確かめたときは、3 つの数字がずれていました。terraform -v は公式の最新として 1.16.5 を案内してきますが、配布元が用意しているのは 1.16.1 で、手元に入っているのは 1.14.8 でした。

どこの値かバージョン
公式の最新1.16.5
HashiCorp の配布元1.16.1
手元に入っている版1.14.8

更新するときは、インストールと同じく完全な名前で指定します。素の名前では解決できないため、brew upgrade terraform は効きません。

brew upgrade hashicorp/tap/terraform

公式の最新版をどうしても使いたい場合や、案件ごとに違うバージョンを行き来したい場合は、Homebrew だけでは足りません。バージョン管理の専用ツールを使うことになります。その話は分量が増えるため、別の記事で扱います。

詰まりやすい箇所と対処

実際に手を動かして引っかかったのは次の 3 つです。どれもコマンドの打ち間違いではなく、仕組みを知らないと原因にたどり着けません。

  1. 配布元が信頼されていないと言われて止まる。Homebrew 6 系では、標準以外の配布元を読むときに確認が入ります。brew trust hashicorp/tap で許可すると進みます
  2. terraform: command not found になる。brew --prefix が返す場所の bin が PATH に入っているかを確かめます
  3. brew upgrade terraform が効かない。完全な名前 hashicorp/tap/terraform で指定し直します

1 つ目は私の環境で実際に出たもので、brew search hashicorp/tap/ のような配布元を指定する操作でも同じ表示になりました。

Error: Refusing to load formula hashicorp/tap/terraform from untrusted tap hashicorp/tap.
Run `brew trust --formula hashicorp/tap/terraform` or `brew trust hashicorp/tap` to trust it.

なお、まっさらな環境で brew install を実行したときに必ずこの確認が出るかどうかは、私はまだ試せていません。出たら許可する、と覚えておけば困らないでしょう。

まとめ

macOS での Terraform のインストールは、配布元を足してから入れる 2 段構えになりました。コマンドを丸暗記するより、なぜ 2 段なのかを知っておくと応用が利きます。

  • brew tap hashicorp/tap のあとに brew install hashicorp/tap/terraform を実行する
  • 素の brew install terraform は通らない。ライセンス変更を経て、2026 年 4 月に定義ファイルが削除されたため
  • 更新も hashicorp/tap/terraform と完全な名前で指定する。配布元の版は公式の最新に遅れることがある

入れ終わったら、次は既存のインフラをコードに取り込むところから始めると手応えがあります。手順は Terraform import で既存リソースをコード管理するにまとめました。