こんにちは。ざわかかける!のざわ(@zw_kakeru)です。
今回はtfenvでterraformのバージョンを指定したのに、なぜかそのバージョンになってくれない現象に遭遇したのでその対処法をメモしておきます。
起こったこと
tfenvを用いて意図したバージョンのterraformをインストールし、アクティベートしました。
$ tfenv install 1.6.6
$ tfenv use 1.6.6
Switching default version to v1.6.6
Default version (when not overridden by .terraform-version or TFENV_TERRAFORM_VERSION) is now: 1.6.6
$ tfenv use 1.6.6
$tfenv list
1.8.5
* 1.6.6
$ terraform -v
Terraform v1.5.4
おや、おかしいですね。
tfenvで1.6.6を指定して、実際に1.6.6を使用していることになっているのにterraformコマンドでバージョンを確認したら1.5.4になってしまっています。
やったこと
おそらく、tfenvを入れる前は直接入れたterraformコマンドを使っていたので、そちらを依然として参照し続けてしまっているのでしょう。
パスの検索順を変えてもいいのですが、tfenvを使うのでもう直接入れたterraformコマンドは不要そうなので削除してしまいましょう。
whichでコマンドのパスを教えてもらい、そのまま削除します。
$ which terraform
/usr/local/bin/terraform
$sudo rm -rf /usr/local/bin/terraform
そうすると、無事にtfenvで入れたterraformを見つけることができるようになりました。
$ which terraform
/usr/bin/terraform
$ terraform -v
Terraform v1.6.6
削除してから何も入れ直してないのにterraformコマンドが見つかっています。
tfenvから入れたコマンドは/usr/bin/terraformに置かれていたんですね。
めでたしめでたし。
おわりに
素のterraformを使っていたところにtfenvを後から入れたために発生した現象でした。
こういうこともあるんですねえ。