2017-12-03 320 views
2

我正在使用「Windows上的Ubuntu上的Bash」(Linux子系統)並希望將Terraform添加到我的$ PATH中。由於Terraform無法通過安裝apt-get的,我做了以下步驟:

  1. 導航到該目錄,在這裏我想安裝Terraform:

    CD的/ usr /本地

  2. 在上面的路徑,我用的wget下載Terraform:

    wget的 https://releases.hashicorp.com/terraform/0.9.8/terraform_0.9.8_linux_amd64.zip

  3. Terraform成功解壓縮!當我打開VIM文件它是所有好:

    解壓terraform_0.9.8_linux_amd64.zip

  4. 我再輸入這個命令來檢查,看看是否Terraform二是通過命令行訪問:

    terraform -version

但是被返回以下消息:

terraform: command not found 

這告訴我需要將Terraform下載的位置添加到我的$ PATH中。

  • 已經被記錄在作爲根用戶( 「須藤ス」)我輸入以下命令訪問 「的.profile」:
  • VIM〜/簡介

    以下是已經在該文件中,這是我離開不變:

    # ~/.profile: executed by Bourne-compatible login shells. 
    
    if [ "$BASH" ]; then 
        if [ -f ~/.bashrc ]; then 
        . ~/.bashrc 
        fi 
    fi 
    
    mesg n 
    

    正下方,這樣的文字,我添加以下,併成功拯救文件使用:wq!

    export PATH=/usr/local/bin:$PATH 
    export PATH=$PATH:/usr/local/terraform 
    

    6. 我然後再輸入以下命令來檢查,看看是否在檢測

    terraform

    terraform -version

    還是一樣的 「terraform:命令未找到」消息被返回。我甚至嘗試關閉並啓動一個新的命令行會話,甚至重新啓動我的電腦。仍然沒有變化。

    任何人有任何想法如何解決這個問題?再次請注意,我正在使用「Windows上的Ubuntu上的Bash」(Linux子系統)。任何輸入將不勝感激!

    +0

    我將用WSL啓動Win10來確認,但確保Ubuntu使用(來源)'〜/ .profile'而不是'〜/ .bash_profile'。有些發行版使用其中一個,我不記得Ubuntu做了什麼。例如,SuSE是前者,Archlinux是後者。 –

    +0

    將zip壓縮包下載到系統位置是很奇怪和草率的。 '/ usr/local'可能是一個很好的目的地,用於安裝你從壓縮文件(庫到'/ usr/local/lib',二進制文件到'/ usr/local/bin'等等)做得正確,你可能不需要更新你的'PATH'或其他系統配置設置。傳統上,壓縮包(不是zip)會包含一個'configure'腳本,它創建一個'Makefile'或者其他的東西,它允許你運行一個簡單的腳本來安裝(和卸載)這個包。 – tripleee

    回答

    3

    您的問題的直接答案是在最後。 但是我認爲如果你繼續閱讀,這會更有意義。

    在嘗試添加到PATH, 之前,我建議先測試一個程序。 在你的情況,我會做這樣的:

    wget https://releases.hashicorp.com/terraform/0.9.8/terraform_0.9.8_linux_amd64.zip 
    unzip terraform_0.9.8_linux_amd64.zip 
    ./terraform 
    

    通知的最後一行./terraform。 zip文件包含一個文件,terraform, ,現在應該在當前目錄中, ,所以我可以用./terraform運行它。 如果它是可執行的。 如果不是可執行文件,然後確認:

    ls -l terraform 
    

    ,並使其可執行如果需要的話:

    chmod +x terraform 
    

    現在,讓我們將它添加到PATH。 但首先,我們決定在哪裏放置這個可執行文件。 /usr/local/bin似乎是一個合理的位置。 那麼讓我們將terraform可執行文件移動到該目錄中。

    通常/usr/local/bin已在PATH, 所以你可能不需要改變任何東西。 現在你可以試試你的支票,這裏面的它已經工作的一個很好的機會:

    terraform -version 
    

    如果沒有,那麼/usr/local/bin不上PATH。 要添加它,在~/.profile加入這一行:

    export PATH=$PATH:/usr/local/bin 
    

    兩個事情看起來根本不對您的方法:

    1. 添加/usr/local/terraformPATH。這很腥,因爲PATH上的條目必須是目錄,並且在你的文章中沒有任何內容表示你創建了一個目錄/usr/local/terraform

      • cd/usr/local,然後unzip terraform的zip文件。鏈接的zip包含一個名爲terraform的文件,因此您示例中的/usr/local/terraform應該是一個文件。
      • 如果它是一個文件,那麼你可以通過添加到PATH的基本目錄來使其可執行爲terraform。但將/usr/local添加到PATH不是一個好主意。這是傳統的把二進制文件爲/usr/local/bin,而不是直接進入/usr/local
    2. 你沒有提到如何重新加載~/.profile。編輯此文件後,您添加的新命令不會在當前shell中自動執行。當你打開一個新的shell時它們會被執行。或者你可以在當前shell中手動執行添加的命令。

    +2

    這幾乎是一本小說。幹得好':)' –

    +0

    這很完美!非常感謝@janos!精美的解釋!我感謝@David的努力!這個問題似乎是因爲我沒有將文件存儲在'usr/local/bin'中。爲PATH添加'/ usr/local/terraform'並將其存儲在目錄路徑中的想法來自我正在關注網絡的教程,所以我一味地跟着它,假設他知道我沒有做過什麼! – user791134

    +0

    @ user791134你很好地描述了你所有的步驟,這很容易找出問題所在。很少有人會這樣做(他們不太可能得到很好的答案:所有人都會受到損失)。對你也很好! – janos

    相關問題