M1 Mac执行terraform init时自动安装非必需hashicorp/template报错求助
问题原因及解决办法
为什么会自动安装hashicorp/template?
你没有直接使用,但当前配置的某个provider(比如你指定版本~>3.0的aws)间接依赖了它。旧版本AWS Provider(v3.x系列)的部分内部逻辑会引用template provider,Terraform初始化时会自动拉取所有依赖的provider包,哪怕你没在代码里显式调用。
报错根源
hashicorp/template v2.2.0没有适配darwin_arm64(M1/M2芯片)的安装包,且该provider已被HashiCorp弃用,官方不会再补充arm架构的适配支持。
解决步骤
升级AWS Provider版本
把代码里aws provider的版本约束从~>3.0改成~>4.0或更高版本,新版AWS Provider已经移除了对template provider的依赖,从根源解决问题。修改后的配置示例:provider "aws" { region = "你的区域" // 其他配置 } terraform { required_providers { aws = { source = "hashicorp/aws" version = "~>4.0" } } }清理旧依赖后重新初始化
删除.terraform目录和.terraform.lock.hcl文件,再执行terraform init,此时会拉取新版AWS Provider,不会再自动安装template。临时兼容方案(不推荐长期使用)
如果暂时无法升级AWS Provider,可以显式指定template provider的旧版本(比如v2.1.2,该版本有darwin_arm64安装包),在required_providers中添加:terraform { required_providers { template = { source = "hashicorp/template" version = "2.1.2" } } }注意:template已被官方弃用,长期来看升级依赖是更稳妥的选择。
内容的提问来源于stack exchange,提问作者lobi
相关产品推荐
相关产品推荐

