So lösen Sie zsh compinit: Problem mit unsicheren Verzeichnissen unter MacOS (andere Lösungen fehlgeschlagen)

Dec 29 2020

Ich bin mir bewusst, dass es hier viele Exemplare dieser Frage gibt, aber alle Antworten empfehlen das Hinzufügen

ZSH_DISABLE_COMPFIX="true"

an den Anfang meiner ~ / .zshrc-Datei. Ich habe dies getan und werde jedes Mal, wenn ich zsh öffne, mit begrüßt

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

Es scheint, dass andere, die diese Frage stellten, im ersten Beispiel nicht die Anführungszeichen um das Wahre hatten, aber ich habe das hinzugefügt. Ich habe auch source ~ / .zshrc ausgeführt. Soweit ich das beurteilen kann, wird die zshrc-Konfiguration neu geladen. Dies gibt mir immer noch die obige Warnung. Ich bin mir nicht sicher, ob eines dieser Details relevant sein könnte, aber ich werde sie einschließen:

  • Dies ist eine neue zsh-Installation auf einem M1-Macbook mit Big Sur
  • Ich habe auch Oh My Zsh auf zsh installiert
  • Ich habe früher mehrere Exportbefehle ausgeführt, um mein NVM-Verzeichnis festzulegen, aber ich denke nicht, dass dies relevant wäre

Haben Sie eine Idee, wie Sie dieses Berechtigungsproblem beheben können? Vielen Dank

Bearbeiten:

compaudit kehrt zurück

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

Hier sind auch die anderen nicht standardmäßigen Einträge in meiner ~ / .zshrc-Datei (in der richtigen Reihenfolge, aber dazwischen sind einige Dinge integriert):

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

Antworten

3 MarlonRichert Dec 29 2020 at 15:44

Das Problem ist, dass Sie compinitZWEIMAL ausführen: Einmal durch Oh-My-Zsh und einmal manuell. $ZSH_DISABLE_COMPFIXist nur für Oh-My-Zsh spezifisch und wird nicht compinitalleine verwendet. Wenn Sie also compinitzum zweiten Mal laufen , wird es sich immer noch beschweren, unabhängig vom Wert von $ZSH_DISABLE_COMPFIX.

Wenn Sie also einfach die Warnung entfernen möchten, entfernen Sie einfach die unteren 3 Zeilen aus Ihrer .zshrcDatei.

Allerdings compinit zeigt nicht , dass die Warnung für nichts. Anstatt es zu unterdrücken, möchten Sie es möglicherweise in chmod g-w,o-wden von aufgelisteten Verzeichnissen tun compaudit.