Jak rozwiązać zsh compinit: problem z niezabezpieczonymi katalogami na MacOS (inne rozwiązania nie powiodły się)

Dec 29 2020

Zdaję sobie sprawę, że istnieje wiele kopii tego pytania, ale wszystkie ich odpowiedzi zalecają dodanie

ZSH_DISABLE_COMPFIX="true"

na początek mojego pliku ~ / .zshrc. Zrobiłem to i nadal za każdym razem, gdy otwieram zsh, jestem witany

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

Wygląda na to, że inni zadający to pytanie nie mieli cudzysłowów wokół prawdy w pierwszej próbce, ale dodałem to. Uruchomiłem również source ~ / .zshrc, który, o ile wiem, ładuje ponownie konfigurację zshrc. To wciąż daje mi powyższe ostrzeżenie. Nie jestem pewien, czy którekolwiek z tych szczegółów mogą być istotne, ale dołączę je:

  • To jest nowa instalacja zsh na M1 Macbook z systemem Big Sur
  • Mam też zainstalowany Oh My Zsh na zsh
  • Wcześniej uruchomiłem kilka poleceń eksportu, aby ustawić mój katalog nvm, ale nie sądzę, aby to miało znaczenie

Masz pomysł, jak rozwiązać ten problem z uprawnieniami? Dzięki

Edytować:

compaudit zwraca

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

Tutaj są również inne niestandardowe wpisy w moim pliku ~ / .zshrc (w kolejności, ale między nimi jest kilka wbudowanych rzeczy):

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

Odpowiedzi

3 MarlonRichert Dec 29 2020 at 15:44

Problem polega na tym, że uruchamiasz compinitDWUKROTNIE: raz przez Oh-My-Zsh i raz ręcznie. $ZSH_DISABLE_COMPFIXjest specyficzny tylko dla Oh-My-Zsh i nie jest używany compinitsamodzielnie. Tak więc, gdy biegniesz compinitpo raz drugi, nadal będzie narzekać, bez względu na wartość $ZSH_DISABLE_COMPFIX.

Tak więc, jeśli chcesz po prostu pozbyć się ostrzeżenia, po prostu usuń trzy ostatnie wiersze z .zshrcpliku.

Jednak compinit nie wyświetla tego ostrzeżenia na darmo. Zamiast go ukrywać, możesz zamiast tego chcieć zrobić chmod g-w,o-wna katalogach wymienionych przez compaudit.