terraform:命令未找到,导出$ PATH未解析

时间:2017-12-06 17:00:48

标签: linux bash path

我在Ubuntu中从命令行运行terraform(exe)的所有努力都是不成功的

~/tectonic_1.7.9-tectonic.2$ terraform init ./platforms/metal
terraform: command not found

我更改了〜/ .profile文件

PATH="$HOME/bin:$HOME/.local/bin:$HOME/bin/tectonic_1.7.9-tectonic.2:$PATH"

和后一个sym链接

/usr/bin# ls -l terraform
lrwxrwxrwx 1 root root 39 dec  6 16:29 terraform -> /home/milenko/tectonic_1.7.9-tectonic.2

我不明白什么是错的。如果我尝试Asere建议的话

ln -s /home/milenko/tectonic_1.7.9-tectonic.2/terraform /usr/bin/terraform
ln: failed to create symbolic link '/usr/bin/terraform/terraform': File exists

1 个答案:

答案 0 :(得分:2)

首先修复,然后解释:

ln -snf /home/milenko/tectonic_1.7.9-tectonic.2/terraform /usr/bin/terraform
# or equivalently:
#rm /usr/bin/terraform
#ln -s /home/milenko/tectonic_1.7.9-tectonic.2/terraform /usr/bin/terraform

目前,/usr/bin/terraform指向/home/milenko/tectonic_1.7.9-tectonic.2

哪个不正确,因为terraform二进制文件位于/home/milenko/tectonic_1.7.9-tectonic.2/terraform

您需要/usr/bin/terraform指向/home/milenko/tectonic_1.7.9-tectonic.2/terraform

让我们了解这里发生了什么:

ln -s /home/milenko/tectonic_1.7.9-tectonic.2/terraform /usr/bin/terraform
ln: failed to create symbolic link '/usr/bin/terraform/terraform': File exists

为什么命令失败? 由于/usr/bin/terraform存在, 它指向/home/milenko/tectonic_1.7.9-tectonic.2, 上述评论不会尝试替换/usr/bin/terraform, 但尝试创建/usr/bin/terraform/terraform。 由于/usr/bin/terraform指向/home/milenko/tectonic_1.7.9-tectonic.2/usr/bin/terraform/terraform已经存在,它实际上与/home/milenko/tectonic_1.7.9-tectonic.2/terraform相同。 所以文件存在,命令失败。

一种解决方案是删除错误的符号链接/usr/bin/terraform,然后重新运行ln -s /home/milenko/tectonic_1.7.9-tectonic.2/terraform /usr/bin/terraform

另一种解决方案是将-f-n标记添加到ln, 强制替换符号链接:

ln -snf /home/milenko/tectonic_1.7.9-tectonic.2/terraform /usr/bin/terraform