LoginSignup
1
1

More than 1 year has passed since last update.

M1 Macでtfenv経由でterraformインストールでコケた

Posted at

タイトルの通りですが、M1 Macでterraformインストール中に見たことないエラーに出くわしたのでここにしたためます。

前提

$ sw_vers
ProductName:    macOS
ProductVersion: 11.5.2
BuildVersion:   20G95
$ uname -mrsv
Darwin 20.6.0 Darwin Kernel Version 20.6.0: Wed Jun 23 00:26:27 PDT 2021; root:xnu-7195.141.2~5/RELEASE_ARM64_T8101 arm64

tfenvインストール

何はなくともanyenvということで、徐に入れます。

$ brew install anyenv

私の環境ではすでにanyenvでいくつかバージョン管理ツール入れていたので、anyenv経由でtfenvインストールします。

$ anyenv versions
nodenv:
  system
  14.17.6
* 16.8.0 (set by /Users/shionel31/.anyenv/envs/nodenv/version)
rbenv:
  system
* 3.0.2 (set by /Users/shionel31/.anyenv/envs/rbenv/version)
* 
$ anyenv install tfenv
/var/folders/74/kf7jxg0n72lbzfvhr_19wkdw0000gn/T/tfenv.20211008183006.20347 /usr/local/bin
Cloning https://github.com/tfutils/tfenv.git master to tfenv...
Cloning into 'tfenv'...
remote: Enumerating objects: 1559, done.
remote: Counting objects: 100% (374/374), done.
remote: Compressing objects: 100% (147/147), done.
remote: Total 1559 (delta 233), reused 334 (delta 213), pack-reused 1185
Receiving objects: 100% (1559/1559), 336.28 KiB | 768.00 KiB/s, done.
Resolving deltas: 100% (996/996), done.
/usr/local/bin

Install tfenv succeeded!
Please reload your profile (exec $SHELL -l) or open a new session.
$ tfenv -v
tfenv 2.2.2

terraformインストール

本題であるterraformをインストールします。

$ terraform -v
No versions of terraform installed. Please install one with: tfenv install

$ tfenv list-remote
1.1.0-alpha20211006
1.1.0-alpha20210922
1.1.0-alpha20210908
1.1.0-alpha20210811
1.1.0-alpha20210728
1.1.0-alpha20210714
1.1.0-alpha20210630
1.1.0-alpha20210616
1.0.8
1.0.7
1.0.6
...

$ tfenv install 1.0.8
Installing Terraform v1.0.8
Downloading release tarball from https://releases.hashicorp.com/terraform/1.0.8/terraform_1.0.8_darwin_amd64.zip
##################################################################################################################################################################################################### 100.0%
Downloading SHA hash file from https://releases.hashicorp.com/terraform/1.0.8/terraform_1.0.8_SHA256SUMS
No keybase install found, skipping OpenPGP signature verification
/opt/homebrew/Cellar/tfenv/2.2.2/libexec/tfenv-install: line 251: 11963 Killed: 9               "${shasum_bin}" -a 256 -s -c <(grep -F "${tarball_name}" "${shasums_name}")
SHA256 hash does not match!

ここでエラーが発生。No keybase install found
ちょっと見過ごしちゃいそうですが、keybaseというアプリがあるそうです。
あと、M1 Macでも_amd64のtarballを落としちゃってるところはやや気になります。

参考
https://github.com/tfutils/tfenv/issues/275

Keybaseインストール

https://keybase.io/docs/the_app/install_macos
ここから愚直にdmgを落としてインストールしました。
Image 2021-10-08 at 6.43.40 PM.jpg

適当にサインアップしました。

terraformインストール再挑戦!

$ tfenv install latest
Installing Terraform v1.0.8
Downloading release tarball from https://releases.hashicorp.com/terraform/1.0.8/terraform_1.0.8_darwin_amd64.zip
##################################################################################################################################################################################################### 100.0%
Downloading SHA hash file from https://releases.hashicorp.com/terraform/1.0.8/terraform_1.0.8_SHA256SUMS
Unable to verify OpenPGP signature unless logged into keybase and following hashicorp
/opt/homebrew/Cellar/tfenv/2.2.2/libexec/tfenv-install: line 251: 12811 Killed: 9               "${shasum_bin}" -a 256 -s -c <(grep -F "${tarball_name}" "${shasums_name}")
SHA256 hash does not match!

エラー発生、、しかしエラー文言は変わりました。
unless logged into keybase and following hashicorpと書いてあるので、terraform提供元のhashicorpをfollowしてくれと。

実はGUI版Keybaseアプリをインストールした状態で、ターミナルでもkeybaseコマンドが使えるようになってるっぽいので、followしてみます。

$ keybase id hashicorp    
▶ INFO Identifying hashicorp
✔ public key fingerprint: C874 011F 0AB4 0511 0D02 1055 3436 5D94 72D7 468F
✔ admin of DNS zone hashicorp.com: found TXT entry keybase-site-verification=a-iv8bbkw3LgvmnT-p1jJ7Com9O-5GrOyFClq2-0iRQ

$ keybase follow hashicorp
▶ INFO Identifying hashicorp
✔ public key fingerprint: C874 011F 0AB4 0511 0D02 1055 3436 5D94 72D7 468F
✔ admin of DNS zone hashicorp.com: found TXT entry keybase-site-verification=a-iv8bbkw3LgvmnT-p1jJ7Com9O-5GrOyFClq2-0iRQ [cached 2021-10-08 18:05:59 JST]
Is this the hashicorp you wanted? [Y/n] Y
Publicly follow? [Y/n] Y

これでhashicorpをfollowできたようです。

terraformインストール再々挑戦!

満を持してterraformのインストールに再びTry!

$ tfenv install latest    
Installing Terraform v1.0.8
Downloading release tarball from https://releases.hashicorp.com/terraform/1.0.8/terraform_1.0.8_darwin_amd64.zip
##################################################################################################################################################################################################### 100.0%
Downloading SHA hash file from https://releases.hashicorp.com/terraform/1.0.8/terraform_1.0.8_SHA256SUMS
Downloading SHA hash signature file from https://releases.hashicorp.com/terraform/1.0.8/terraform_1.0.8_SHA256SUMS.72D7468F.sig
▶ INFO Identifying hashicorp
✔ <followed> public key fingerprint: C874 011F 0AB4 0511 0D02 1055 3436 5D94 72D7 468F
You last followed hashicorp on 2021-10-08 18:06:12 JST
✔ <followed> admin of DNS zone hashicorp.com: found TXT entry keybase-site-verification=a-iv8bbkw3LgvmnT-p1jJ7Com9O-5GrOyFClq2-0iRQ [cached 2021-10-08 18:05:59 JST]
Signature verified. Signed by hashicorp 1 week ago (2021-09-30 02:33:32 +0900 JST).
PGP Fingerprint: c874011f0ab405110d02105534365d9472d7468f.
/opt/homebrew/Cellar/tfenv/2.2.2/libexec/tfenv-install: line 251: 13208 Killed: 9               "${shasum_bin}" -a 256 -s -c <(grep -F "${tarball_name}" "${shasums_name}")
SHA256 hash does not match!

...:sob:

もう嫌になってきましたが、terraform使えないと困るのでもう少し粘ります。
怪しい箇所:
"${shasum_bin}" -a 256 -s -c <(grep -F "${tarball_name}" "${shasums_name}")

shasum?これが問題っぽいです。Killed: 9はCommand not found絡み。

参考(再掲)
https://github.com/tfutils/tfenv/issues/275

こちらのスレッドにもある通り、shasumコマンドをリネームしている部分がありました。
ただ、リネームしちゃうとshasumに依存している他の部分に波及してしまうんではないかと思い、手を打ってみます。

$ which shasum
/opt/homebrew/bin/shasum
$ shasum
zsh: killed     shasum
$ ls -la $(which shasum)
lrwxr-xr-x 32 shionel31 admin 2021-07-30 11:10 /opt/homebrew/bin/shasum -> ../Cellar/perl/5.34.0/bin/shasum

ふむふむ。実行バイナリはあるがなぜかコマンドが動かない。
動くshasumコマンドがほしい。

$ brew list | grep sha
wireshark
$ brew search shasum
==> Formulae
sha3sum

3?となりましたが、ひとまず動けばいいので入れてみます。

$ brew install sha3sum
$ sha3sum ${ファイル名}
faffad5de05ce9d02bb51c5ff6a1c08c490d3730  ${ファイル名}

↑こんな感じでハッシュ値を出す用途で使います。

$ ls -la $(which shasum)
lrwxr-xr-x 32 shionel31 admin 2021-07-30 11:10 /opt/homebrew/bin/shasum -> ../Cellar/perl/5.34.0/bin/shasum
$ ls -la $(which sha3sum)
lrwxr-xr-x 35 shionel31 admin 2021-10-08 18:17 /opt/homebrew/bin/sha3sum -> ../Cellar/sha3sum/1.2.1/bin/sha3sum

ここでsha3sumコマンドにエイリアス名shasumを設定します。

$ export "alias shasum=sha3sum" > ~/.zshrc
$ tail -1 ~/.zshrc
alias shasum=sha3sum
$ source $_

ちなみにエイリアスを張らずにシンボリックリンクを張った場合でも動きましたが、sha3sum自体が参照ループのエラーになってしまうので正攻法では無いようです。

$ cd /opt/homebrew/bin
$ ln -snf /opt/homebrew/bin/shasum ../Cellar/sha3sum/1.2.1/bin/sha3sum
$ shasum -v
6.02
$ sha3sum
zsh: too many levels of symbolic links: sha3sum

terraformインストール再々々挑戦!!

$ tfenv install latest                     
Installing Terraform v1.0.8
Downloading release tarball from https://releases.hashicorp.com/terraform/1.0.8/terraform_1.0.8_darwin_amd64.zip
##################################################################################################################################################################################################### 100.0%
Downloading SHA hash file from https://releases.hashicorp.com/terraform/1.0.8/terraform_1.0.8_SHA256SUMS
Downloading SHA hash signature file from https://releases.hashicorp.com/terraform/1.0.8/terraform_1.0.8_SHA256SUMS.72D7468F.sig
▶ INFO Identifying hashicorp
✔ <followed> public key fingerprint: C874 011F 0AB4 0511 0D02 1055 3436 5D94 72D7 468F
You last followed hashicorp on 2021-10-08 18:06:12 JST
✔ <followed> admin of DNS zone hashicorp.com: found TXT entry keybase-site-verification=a-iv8bbkw3LgvmnT-p1jJ7Com9O-5GrOyFClq2-0iRQ [cached 2021-10-08 18:05:59 JST]
Signature verified. Signed by hashicorp 1 week ago (2021-09-30 02:33:32 +0900 JST).
PGP Fingerprint: c874011f0ab405110d02105534365d9472d7468f.
Archive:  tfenv_download.k4eWK1/terraform_1.0.8_darwin_amd64.zip
  inflating: /opt/homebrew/Cellar/tfenv/2.2.2/versions/1.0.8/terraform  
Installation of terraform v1.0.8 successful. To make this your default version, run 'tfenv use 1.0.8'

入った :innocent:

$ tfenv use 1.0.8
$ tfenv version-name
1.0.8
$ tfenv list        
* 1.0.8 (set by /opt/homebrew/Cellar/tfenv/2.2.2/version)
$ terraform -v
Terraform v1.0.8
on darwin_amd64

特にRosettaでターミナル開いているわけではないのですが、がっつり「on darwin_amd64」!とでています。
一旦、terraformコマンド自体が動くようになったのでこれで御の字とします。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1