Mac M1 Terraform Versions Missing from repo

The darwin-arm64 (Mac M1) versions of Terraform are missing from the download repo. For example: Terraform v0.15.5 Binaries | HashiCorp Releases
This affects versions older than 1.0.2. 1.0.2 and newer are still available.

Hi @eric.the.person,

There have never been darwin_arm64 releases of any versions prior to v1.0.2. Support for this new platform was introduced in Terraform CLI v1.0.2.

If you intend to use Terraform on that platform then you will need to use Terraform v1.0.2 or newer.

1 Like

Thank you. Looks like it’s an issue with the recent release of tfenv 2.2.3. It requires a redownload of all installed terraform versions.

I’ve manually downloaded the older darwin-AMD64 version and am working with that.

Terraform is open source so you can compile the darwin binary yourself:

  1. Install Go (latest version should be fine)
  2. Clone the Terraform Repo
git clone https://github.com/hashicorp/terraform.git
  1. Checkout the required version of Terraform.
cd terraform
git checkout tags/v0.13.7
  1. Build an executable file
go install .
  1. This is built to your GOPATH by default. Run the following command to get the path to your built go binaries.
go env GOPATH
  1. Add this folder to your PATH by modifying your ~/.zshrc file to include the following line (replacing YOUR_GO_PATH with the result from above).
export PATH=$PATH:YOUR_GO_PATH/bin
1 Like

I have had 0.15.5 and earlier versions installed before on my mac m1 before now. But they are missing now and cannot be re-installed.

Hi, I also have the same issue with tfenv
❯ tfenv install 0.14.9
Installing Terraform v0.14.9
Downloading release tarball from https://releases.hashicorp.com/terraform/0.14.9/terraform_0.14.9_darwin_arm64.zip
curl: (22) The requested URL returned error: 403

Tarball download failed

When I tried to the official repo"Terraform v0.14.9 Binaries | HashiCorp Releases"
the url for 0.14.9 darwin URL is actually “https://releases.hashicorp.com/terraform/0.14.9/terraform_0.14.9_darwin_amd64.zip”

the tfenv point to “terraform_0.14.9_darwin_arm64.zip” but the official repo “terraform_0.14.9_darwin_amd64.zip”

I’m using mac M1
❯ tfenv --version
tfenv 2.2.3

I’m using tfenv alternative (tfswitch) to resolve this.

For anyone else finding this thread, you can temporarily set TFENV_ARCH to download older versions with one line.

Terminal example:

TFENV_ARCH=amd64 tfenv install 0.15.5

1 Like

Thanks for the pointer to that tfenv change!

That does seem to explain why this appeared to be working for various folks before: apparently before tfenv 2.2.3 it would always install the darwin_amd64 version of Terraform when running on macOS, and so those who have seen it working previously were presumably running the amd64 version of Terraform in Rosetta emulation.

tfenv is a third-party project, so we at HashiCorp have no direct influence over its behavior, but it seems that there is an issue in the repository discussing the problem of using older Terraform CLI versions:

That issue seems to cover what would’ve been my initial starting suggestion, which would be to have tfenv recognize when it’s being asked to install an older Terraform version on darwin_arm64 and to force using the darwin_amd64 packages instead, restoring the previous behavior. However, I’m no expert on tfenv so I don’t know if that particular path is viable or whether there’s something better to do.

However, in the meantime it does look like @eric.the.person’s proposed workaround of setting the TFENV_ARCH=amd64 environment variable would work, since that environment variable takes priority over the automatic detection behavior:

(This would also be true for older Terraform versions on linux_arm64, although IIRC Terraform CLI had support for that platform earlier than for darwin_arm64 because we had to hold for the upstream Go toolchain to introduce support for each of these platforms; perhaps linux_arm64 has been available long enough now that there’s a deeper horizon of support for that one, and thus less likely to encounter these problems there.)

5 posts were split to a new topic: Running Terraform v0.10 on modern macOS

Has anyone been able to get this non arm64 binaries to run with rosetta? I only ever get segmentation fault