zsh compinit:不安全的目录,运行 compaudit for list

zsh compinit: insecure directories, run compaudit for list

我在 mac 上的 运行 终端上看到这个:

zsh compinit: insecure directories, run compaudit for list. Ignore insecure directories and continue [y] or abort compinit [n]? y

this 这样的建议答案对我没有用,因为它们都涉及 运行ning 我目前无法执行的命令。我该如何解决?

这是我的 .zshrc:

export JAVA_HOME=$(/usr/libexec/java_home)
export PATH="$HOME/.jenv/bin:$PATH:/Users/paulcarron/Apache/apache-maven-3.8.1/bin"
eval "$(jenv init -)"
export NVM_DIR=~/.nvm
    source $(brew --prefix nvm)/nvm.sh
source ~/.bash_profile

.bashrc:

export NVM_DIR=~/.nvm
source $(brew --prefix nvm)/nvm.sh
eval "$(jenv init -)"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion
if [ -r ~/.zshrc ]; then
   source ~/.zshrc
fi

您在点文件中创建了一个无限循环。你的 .zshrc 来源你的 .bashrc,它来源你的 .zshrc 无限。

此外,当您从 zshit for some strange reason calls compinit. (This is something that nvm should not do 获取 "$NVM_DIR/bash_completion" 时。)

所以,就是这样:你们一起创造了无限的 compinits。

这个故事的寓意:从 .zshrc 获取 .bashrc 已经不是一个好主意,反之亦然,但双向执行更糟糕。

解决方案:不要那样做,并从您的点文件中删除有问题的行。