代码之家  ›  专栏  ›  技术社区  ›  user791134

在Windows上的Ubuntu(Linux子系统)上的Bash上设置$PATH的问题

  •  9
  • user791134  · 技术社区  · 7 年前

    我正在使用“Bash on Ubuntu on Windows”(Linux子系统),并希望将Terraform添加到我的$PATH中。由于无法通过apt get安装Terraform,我执行了以下步骤:

    1. 导航到此目录,我想在其中安装Terraform:

      cd/usr/local

    2. 在上面的路径中,我使用wget下载Terraform:

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

    3. Terraform成功解锁!当我在VIM中打开文件时,一切都很好:

      解压缩terraform\u 0.9.8\u linux\u amd64。拉链

    4. 然后我输入这个命令来检查是否可以从命令行访问Terraform二进制文件:

      地形-版本

    但是,返回以下消息:

    terraform: command not found
    

    这告诉我Terraform下载的位置需要添加到我的$PATH中。

    1. 我已经以root用户(“sudo su”)身份登录,输入以下命令以访问“.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:command not found”消息。我甚至尝试关闭并启动一个新的命令行会话,甚至重新启动我的计算机。仍然没有变化。

    有人对如何解决这个问题有什么想法吗?再次注意,我使用的是“Windows上Ubuntu上的Bash”(Linux子系统)。如果您有任何意见,我们将不胜感激!

    2 回复  |  直到 7 年前
        1
  •  17
  •   janos slartidan    7 年前

    你的问题的直接答案在最后。 但我认为,如果你继续从这里阅读,这将更有意义。

    在尝试添加到之前 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 , 现在应该在当前目录中, 所以我可以用 ./地球化 . 如果它是可执行的。 如果不可执行,则确认:

    ls -l terraform
    

    并在需要时使其可执行:

    chmod +x terraform
    

    现在我们将其添加到 路径 . 但首先, 让我们决定把这个可执行文件放在哪里。 /usr/local/bin 似乎是一个合理的位置。 让我们移动 地球化 可执行到该目录中。

    通常 /usr/local/bin 已打开 路径 , 所以你可能不需要改变任何事情。 现在你可以试试你的支票了,很有可能它已经起作用了:

    terraform -version
    

    如果没有,那么 /usr/local/bin 路径 . 要添加它,请在中添加此行 ~/.profile :

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

    你的方法有两个根本错误:

    1. 正在添加 /usr/local/terraform 路径 . 这很可疑,因为 路径 必须是目录,并且在您的帖子中没有任何内容表明您在 /usr/本地/地形 .

      • cd 进入 /usr/local ,然后 unzip 地球化 所以 /usr/本地/地形 在您的示例中,应该是一个文件。
      • 如果它是一个文件,那么您可以将其作为可执行文件 地球化 通过添加到添加到 路径 其基本目录。但是添加 /usr/本地 路径 这不是个好主意。将二进制文件放入 /usr/local/bin ,而不是直接进入 /usr/本地
    2. 你没有提到你是如何重新加载的 ~/.轮廓 . 编辑此文件后,您添加的新命令不会在当前shell中自动执行。当你打开一个新的shell时,它们将被执行。或者可以在当前shell中手动执行添加的命令。

        2
  •  0
  •   Kobi    4 年前

    点击下方命令

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