簡體   English   中英

terraform:找不到命令,導出 $PATH 未解決

[英]terraform: command not found,export $PATH unresolved

我在 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"

和后一個符號鏈接

/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

首先是修復,然后是解釋:

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相同/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

2022 年 1 月更新:

您最好在The Official Terraform Website之后再次安裝Terraform 但是例如,要為UbuntuDebian安裝Terraform ,我們需要運行如下所示的 4 個命令,這很麻煩。 而且每次打開終端都需要運行以下4條命令,比較麻煩:

sudo apt-get update && sudo apt-get install -y gnupg software-properties-common curl
curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo apt-key add -
sudo apt-add-repository "deb [arch=amd64] https://apt.releases.hashicorp.com $(lsb_release -cs) main"
sudo apt-get update && sudo apt-get install terraform

所以我在上面用“&&”將它們連接起來,如下所示,這樣我們就可以一次在上面運行它們並且它工作正常。 只需復制、粘貼並運行以下適用於UbuntuDebian的命令:

sudo apt-get update && sudo apt-get install -y gnupg software-properties-common curl &&

curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo apt-key add - &&

sudo apt-add-repository "deb [arch=amd64] https://apt.releases.hashicorp.com $(lsb_release -cs) main" &&

sudo apt-get update && sudo apt-get install terraform

我搜索了很多錯誤“bash:terraform:command not found” ,但沒有任何簡單的解決方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM