我在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
答案 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