所以我只安装了 macOS Catalina 和 MacPorts。这导致我不得不修改 .zshenv 文件中的 PATH 和 MANPATH 环境变量,如下所示:
# configure an environment variable for Racket
export RACKET=/Applications/Racket
# configure an appropriate PATH variable for use with MacPorts
export PATH="/opt/local/bin:/opt/local/sbin:$RACKET/bin:$PATH"
# configure an appropriate MANPATH variable for use with MacPorts
export MANPATH="/opt/local/share/man:$RACKET/man:$MANPATH"
但是,运行以下命令
echo $PATH
给了我与我期望相反的结果:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/local/bin:/opt/local/sbin:/Applications/Racket/bin
关于我应该做些什么来解决这个问题的任何想法?事实证明
/opt/local/*
即将结束时正在破坏我使用的相当多的实用程序的一些构建脚本。
最佳答案
在 ~/.zshrc
中添加以下代码或 ~/.zprofile
:
# Prepend the $PATH
[[ -f $HOME/.zshenv ]] && source $HOME/.zshenv
# remove duplicate $PATH
typeset -U PATH
解释:根据zsh loading order , 对于 zsh 中的任何登录 shell,它会调用
etc/zprofile
之后 ~/.zshenv
但之前~/.zshrc
,其中包含 usr/libexec/path_helper :
# file: etc/zprofile
# system-wide environment settings for zsh(1)
if [ -x /usr/libexec/path_helper ]; then
eval `/usr/libexec/path_helper -s`
fi
上面的代码移动了 /usr/bin:/bin:/usr/sbin:/sbin
提前你自己加$PATH
如 /opt/local/bin:/opt/local/sbin..
.我们来源
.zshenv
再次在/etc/zprofile
之后再次在前面添加自己添加的路径,type -U PATH
保留 path
留在第一个出现并删除重复的。
关于macos - ZSH PATH 变量条目在 OS X Catalina 上向后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59131915/