Как решить zsh compinit: проблема с небезопасными каталогами в MacOS (другие решения не удались)

Dec 29 2020

Я знаю, что здесь есть много копий этого вопроса, но все их ответы рекомендуют добавить

ZSH_DISABLE_COMPFIX="true"

в начало моего файла ~ / .zshrc. Я сделал это, и до сих пор каждый раз, когда я открываю zsh, меня приветствуют

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

Кажется, что у других, задающих этот вопрос, не было кавычек вокруг истины в первом примере, но я добавил это. Я также запустил исходный код ~ / .zshrc, который, насколько я могу судить, перезагружает конфигурацию zshrc. Это все еще дает мне указанное выше предупреждение. Я не уверен, может ли какая-либо из этих деталей быть актуальной, но я включу их:

  • Это новая установка zsh на Macbook M1 под управлением Big Sur.
  • У меня также установлен Oh My Zsh поверх zsh
  • Ранее я запускал несколько команд экспорта, чтобы установить каталог nvm, но я не думаю, что это будет актуально

Есть идеи, как решить эту проблему с разрешениями? Спасибо

Редактировать:

compaudit возвращает

/usr/local/share/zsh/site-functions
/usr/local/share/zsh

Кроме того, вот другие нестандартные записи в моем файле ~ / .zshrc (по порядку, но между ними есть некоторые встроенные элементы):

ZSH_DISABLE_COMPFIX="true"
export NVM_DIR=~/.nvm
source $(brew --prefix nvm)/nvm.sh export PATH="/usr/local/opt/icu4c/bin:$PATH"
export PATH="/usr/local/opt/icu4c/sbin:$PATH" export PATH=$HOME/bin:/usr/local/bin:$PATH plugins=(git) source $ZSH/oh-my-zsh.sh
zstyle :compinstall filename '/Users/jonahsaltzman/.zshrc'
# End of lines configured by zsh-newuser-install
# The following lines were added by compinstall
autoload -Uz compinit
compinit

Ответы

3 MarlonRichert Dec 29 2020 at 15:44

Проблема в том, что вы запускаете compinitДВАЖДЫ: один раз через Oh-My-Zsh и один раз вручную. $ZSH_DISABLE_COMPFIXотносится только к Oh-My-Zsh и не используется compinitсам по себе. Итак, когда вы запускаете compinitвторой раз, он все равно будет жаловаться, независимо от значения $ZSH_DISABLE_COMPFIX.

Таким образом, если вы просто хотите избавиться от предупреждения, просто удалите из .zshrcфайла 3 нижние строки .

Однако compinit не зря показывает это предупреждение. Вместо того, чтобы подавлять его, вы можете сделать это chmod g-w,o-wв каталогах, перечисленных в compaudit.