git - terraform init 失败 - git 必须可用并且在 PATH 上

标签 git terraform

我在运行 terraform init/get 时遇到问题。

我得到的错误:

Error downloading modules: Error loading modules: error downloading 'ssh://git@github.com/etc etc': git must be available and on the PATH

github 路径正确,在另一台机器上工作正常。

Git 工作正常,它也在 PATH 中。 TF_LOG 为空。 在 ubuntu 上工作。

谢谢!

最佳答案

我不知道你是否解决了你的问题,但我遇到了同样的问题,然后解决了。分享答案以防其他人需要帮助。

作为引用,我遇到了这个问题

  • Ubuntu 18.04
  • Linux Ubuntu 4.15.0-45-generic
  • 通过 Snap 安装的 Terraform v0.11.11 Rev 216

错误来自文件 terraform/vendor/github.com/hashicorp/go-getter/get_git.go Get 函数。该函数尝试的第一件事是以下调用

if _, err := exec.LookPath("git"); err != nil {
   return fmt.Errorf("git must be available and on the PATH")
}

这会导致 go 搜索路径中列出的所有文件夹以查找具有所提供名称的文件,在本例中为 git。我创建并执行了一个进行相同调用的 go 脚本,它的行为符合预期,发现 git 没有错误。

在此之后,我从 snap 中卸载了 terraform,并直接从 Hashicorp 网站下载了可执行文件。当我运行仍然是 v0.11.11 的那个版本的可执行文件时,它运行没有问题。这使我相信该错误与 snap 运行可执行文件的方式或围绕 snap 安装的应用程序的权限模型有关。

长话短说: 卸载 Terraform 的快照安装版本,而是下载并使用 Hashicorp 二进制文件。

关于git - terraform init 失败 - git 必须可用并且在 PATH 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54406076/

相关文章:

git reflog 引用修剪的提交,但不显示分支的 reflog

git - 如何从 Git 存储库中删除远程源

git - 查找 Git 提交来自哪个分支

azure - 如何通过 Terraform 创建多个虚拟机?

google-cloud-platform - 自动执行GCP永久磁盘初始化

Git pull 是不可能的,因为你有未 merge 的文件

terraform - 为什么我在 Terraform 中收到 random_id b64 属性的错误?

nested-loops - Terraform 0.12 嵌套 for 循环

amazon-web-services - 地形错误: Incorrect attribute value type for subnet_ids vpc modules

linux - 多操作系统环境中的 Git 行尾