gpt4 book ai didi

macos - ZSH PATH 变量条目在 OS X Catalina 上向后

转载 作者:行者123 更新时间:2023-12-03 20:12:50 26 4
gpt4 key购买 nike

所以我只安装了 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com