Como resolver zsh compinit: problema de diretórios inseguros no MacOS (outras soluções falharam)

Dec 29 2020

Estou ciente de que existem muitas cópias desta pergunta aqui, mas todas as suas respostas recomendam adicionar

ZSH_DISABLE_COMPFIX="true"

no início do meu arquivo ~ / .zshrc. Eu fiz isso e ainda toda vez que abro o zsh sou saudado com

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

Parece que outras pessoas que fizeram essa pergunta não tinham aspas em torno da verdade no primeiro exemplo, mas eu adicionei isso. Eu também executei o source ~ / .zshrc que, pelo que posso dizer, recarrega a configuração do zshrc. Isso ainda me dá o aviso acima. Não tenho certeza se algum desses detalhes pode ser relevante, mas vou incluí-los:

  • Esta é uma nova instalação do zsh em um Macbook M1 executando Big Sur
  • Eu também tenho Oh My Zsh instalado em cima do zsh
  • Anteriormente, executei vários comandos de exportação para definir meu diretório nvm, mas não acho que seria relevante

Alguma ideia de como resolver esse problema de permissões? Obrigado

Editar:

compaudit retorna

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

Além disso, aqui estão as outras entradas não padrão em meu arquivo ~ / .zshrc (em ordem, mas há algumas coisas embutidas no meio):

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

Respostas

3 MarlonRichert Dec 29 2020 at 15:44

O problema é que você está executando compinitDUAS VEZES: uma vez por meio de Oh-My-Zsh e uma vez manualmente. $ZSH_DISABLE_COMPFIXé específico para Oh-My-Zsh apenas e não é usado compinitsozinho. Então, quando você correr compinitpela segunda vez, ele ainda vai reclamar, não importa o valor de $ZSH_DISABLE_COMPFIX.

Portanto, se você simplesmente deseja se livrar do aviso, apenas remova as últimas 3 linhas de seu .zshrcarquivo.

No entanto, compinit não mostra esse aviso à toa. Em vez de suprimi-lo, você pode querer fazer chmod g-w,o-wnos diretórios listados por compaudit.