未读取 $PATH 变量

未读取 $PATH 变量

我尝试安装 MacPorts。我将以下行添加到我的.zshrc

export PATH=/opt/local/bin/port:$PATH

然后当我输入命令时port我得到这个:

sudo: port: command not found

但是,当我尝试通过直接从其文件中调用 MacPorts 来使用它时,它可以工作:

$ /opt/local/bin/port
MacPorts 2.3.4
Entering interactive mode... ("help" for help, "quit" to quit)
[Users/tom] > 

当我输入此命令时,echo $PATH我得到的结果如下:

/opt/local/bin/port:/usr/local/mysql/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin

出了什么问题?如何解决这个问题?

先感谢您。

PS:当我尝试使用 Homebrew 安装 git 时也遇到了同样的问题。只有当我写完整路径 ( /usr/local/Cellar/git/2.9.3/bin/git) 时它才有效,否则,尽管尝试正确设置 $PATH 变量,它仍会使用旧版本的 git(已安装在我的计算机上)。

答案1

您需要向 PATH 变量添加“路径”,而不是文件。换句话说,您需要添加包含可执行文件的目录的路径,而不是可执行文件的路径。因此,不要:

export PATH=/opt/local/bin/port:$PATH

做这个:

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

修改 .zshrc 文件后,您需要通过获取文件或打开新 shell 来重新加载文件,以使设置生效。

另外,zsh 有一个不错的替代语法用于附加环境变量。除了上面的语句,您还可以执行以下操作:

export PATH+=('/opt/local/bin/')

为了帮助调试问题,您可以直接在命令行上修改 PATH 和其他环境变量,以确认语法/路径正确;这些设置不会持久,仅适用于当前 shell。一旦您正确解决了语法问题,您就可以将它们添加到 .zshrc 文件中。

相关内容