Comment résoudre zsh compinit: problème de répertoires non sécurisés sur MacOS (d'autres solutions ont échoué)

Dec 29 2020

Je sais qu'il existe de nombreuses copies de cette question ici, mais toutes leurs réponses recommandent d'ajouter

ZSH_DISABLE_COMPFIX="true"

en haut de mon fichier ~ / .zshrc. J'ai fait cela et toujours à chaque fois que j'ouvre zsh, je suis accueilli avec

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

Il semble que d'autres personnes posant cette question n'avaient pas les guillemets autour du vrai dans le premier échantillon, mais j'ai ajouté cela. J'ai également exécuté source ~ / .zshrc qui, pour autant que je sache, recharge la configuration zshrc. Cela me donne toujours l'avertissement ci-dessus. Je ne sais pas si l'un de ces détails pourrait être pertinent, mais je vais les inclure:

  • Ceci est une nouvelle installation zsh sur un Macbook M1 exécutant Big Sur
  • J'ai également installé Oh My Zsh au-dessus de zsh
  • J'ai précédemment exécuté plusieurs commandes d'exportation pour définir mon répertoire nvm mais je ne pense pas que ce serait pertinent

Une idée comment résoudre ce problème d'autorisations? Merci

Éditer:

retours compaudit

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

Aussi, voici les autres entrées non standard dans mon fichier ~ / .zshrc (dans l'ordre, mais il y a des éléments intégrés entre les deux):

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

Réponses

3 MarlonRichert Dec 29 2020 at 15:44

Le problème est que vous exécutez compinitDEUX FOIS: une fois via Oh-My-Zsh et une fois manuellement. $ZSH_DISABLE_COMPFIXest spécifique à Oh-My-Zsh uniquement et n'est pas utilisé compinitseul. Donc, lorsque vous courrez compinitpour la deuxième fois, il va toujours se plaindre, quelle que soit la valeur de $ZSH_DISABLE_COMPFIX.

Ainsi, si vous souhaitez simplement vous débarrasser de l'avertissement, supprimez simplement les 3 dernières lignes de votre .zshrcfichier.

Cependant, compinit ne montre pas cet avertissement pour rien. Plutôt que de le supprimer, vous voudrez peut-être le faire chmod g-w,o-wsur les répertoires répertoriés par compaudit.