我正在使用“Windows 上 Ubuntu 上的 Bash”(Linux 子系统)并想将 Terraform 添加到我的 $PATH 中。由于无法通过 apt-get 安装 Terraform,我执行了以下步骤:
导航到我想安装 Terraform 的目录:
cd/usr/local
在上面的路径中,我使用wget下载了Terraform:
wget https://releases.hashicorp.com/terraform/0.9.8/terraform_0.9.8_linux_amd64.zip
Terraform 成功解压缩!当我在 VIM 中打开文件时一切正常:
解压terraform_0.9.8_linux_amd64.zip
然后我输入此命令以检查是否可以从命令行访问 Terraform 二进制文件:
terraform -version
但是会返回以下消息:
terraform: command not found
这告诉我需要将 Terraform 下载位置添加到我的 $PATH 中。
- 已经以根用户身份登录(“sudo su”)我输入以下命令来访问“.profile”:
vim ~/.profile
以下内容已包含在该文件中,我未对其进行改动:
# ~/.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:找不到命令”消息。我什至尝试关闭并启动一个新的命令行 session ,甚至重新启动我的计算机。仍然没有变化。
有人知道如何解决这个问题吗?再次注意,我使用的是“Windows 上的 Ubuntu 上的 Bash”(Linux 子系统)。任何输入将不胜感激!
最佳答案
您问题的直接答案在最后。 但我认为,如果您继续阅读此处会更有意义。
在尝试添加到 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
您的方法有两点看起来根本错误:
将
/usr/local/terraform
添加到PATH
。这很可疑,因为PATH
上的条目必须是目录,并且在您的帖子中没有任何内容表明您在/usr/local/terraform
中创建了一个目录。- 您
cd
进入/usr/local
,然后解压缩
terraform 的zip 文件。链接的 zip 包含一个名为terraform
的文件,因此您示例中的/usr/local/terraform
应该是一个文件。 - 如果它是一个文件,那么您可以通过将其添加到
PATH
其基本目录来使其可执行为terraform
。但是将/usr/local
添加到PATH
并不是一个好主意。习惯上将二进制文件放入/usr/local/bin
,而不是直接放入/usr/local
- 您
您没有提到如何重新加载
~/.profile
。编辑此文件后,您添加的新命令不会在当前 shell 中自动执行。当您打开一个新的 shell 时,它们将被执行。或者您可以在当前 shell 中手动执行添加的命令。
关于linux - 在 Windows 上的 Ubuntu 上的 Bash 上设置 $PATH 的问题(Linux 子系统),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47615279/