tgenv install
が誤って terragrunt_linux_amd64
をインストールしている場合でも、arm64
環境で terragrunt_linux_arm64
をインストールする方法があります。
以下の手順で対応可能です。
1. 手動でアーキテクチャを指定する
tgenv
は通常、terragrunt
のバイナリを公式リリースから取得しますが、アーキテクチャの自動判定に誤りがある場合があります。環境変数を利用して、アーキテクチャを手動で指定します。
手順: TGENV_ARCH
環境変数を設定する
export TGENV_ARCH=arm64
tgenv install <バージョン>
TGENV_ARCH
を arm64 に指定することで、terragrunt_linux_arm64
がダウンロードされます。
2. tgenv のアーキテクチャ判定を修正する
tgenv
の内部スクリプトでアーキテクチャを確認している部分があるため、これを一時的に上書きします。
手順: Dockerfileで環境変数を追加
Dockerfile
内に以下のような行を追加します:
ENV TGENV_ARCH=arm64
RUN tgenv install $(cat .terragrunt_version)
3. 手動でterragruntをダウンロード
tgenv
をバイパスして、arm64 バイナリを手動でダウンロードし、tgenv
のディレクトリに配置します。
手順:
VERSION=$(cat .terragrunt_version)
ARCH=arm64
wget https://github.com/gruntwork-io/terragrunt/releases/download/v${VERSION}/terragrunt_linux_${ARCH}
chmod +x terragrunt_linux_${ARCH}
mv terragrunt_linux_${ARCH} ~/.tgenv/versions/${VERSION}/terragrunt
この方法では、正しいアーキテクチャのバイナリをダウンロードして手動で配置します。
4. 確認
以下のコマンドで正しいバイナリがインストールされたかを確認します:
terragrunt --version
file $(which terragrunt)
file
コマンドの出力に aarch64 または ARM64 と表示されれば成功です。
まとめ
- 環境変数
TGENV_ARCH=arm64
を設定することで、tgenv
が適切なバイナリをインストールするよう強制できます。 - 手動で
terragrunt
バイナリをダウンロードして、tgenv
ディレクトリに配置することも可能です。