我尝试安装 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 文件中。