158 votes

problème zsh : compinit:503 : aucun fichier ou répertoire de ce type : /usr/local/share/zsh/site-functions/_brew

J'utilise Apple M1 MacBook pro.

Quand j'ai installé oh mon zash. Quand j'ai ajouté export PATH="/opt/homebrew/bin:$PATH" à mon fichier ~/.zshrc. Cette erreur s'est affichée dans mon terminal :

 joe :: share/zsh/site-functions » source ~/.zshrc
compinit:503: no such file or directory: /usr/local/share/zsh/site-functions/_brew
compinit:503: no such file or directory: /usr/local/share/zsh/site-functions/_brew_cask

Cependant, j'ai vérifié et trouvé que ces deux fichiers existent. Quelqu'un peut-il me dire que le problème est?

Voici mon fichier ~/.zshrc :

 Last login: Sat Jan 16 14:53:34 on console
compinit:503: no such file or directory: /usr/local/share/zsh/site-functions/_brew
compinit:503: no such file or directory: /usr/local/share/zsh/site-functions/_brew_cask
[oh-my-zsh] Random theme 'jnrowe' loaded
 ~  cd ~
 ~  source .zshrc

compinit:503: no such file or directory: /usr/local/share/zsh/site-functions/_brew
compinit:503: no such file or directory: /usr/local/share/zsh/site-functions/_brew_cask
# export MANPATH="/usr/local/man:$MANPATH"
[oh-my-zsh] Random theme 'cypher' loaded
joe :: ~ » chmod 755 /usr/local/share/zsh
chmod 755 /usr/local/share/zsh/site-functions

joe :: ~ » sudo chmod 755 /usr/local/share/zsh
Password:
joe :: ~ » sudo chmod 755 /usr/local/share/zsh/site-functions
joe :: ~ » ls
#ZSH_DISABLE_COMPFIX=true

# If you come from bash you might have to change your $PATH.
# export PATH=$HOME/bin:/usr/local/bin:$PATH

#Homebrew
export PATH="/opt/homebrew/bin:$PATH"
export PATH="/opt/homebrew/sbin:$PATH"
#Homebrew END

#Wget
export LDFLAGS="-L/opt/homebrew/opt/openssl@1.1/lib"
export CPPFLAGS="-I/opt/homebrew/opt/openssl@1.1/include"
#Wget END

 #Path to your oh-my-zsh installation.
export ZSH="/Users/caizhuoyue/.oh-my-zsh"

# Set name of the theme to load --- if set to "random", it will
# load a random theme each time oh-my-zsh is loaded, in which case,
# to know which specific one was loaded, run: echo $RANDOM_THEME
# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes
ZSH_THEME="random"

"~/.zshrc" 114L, 3999C




407voto

Monica Granbois Points 814

J'ai eu un problème similaire. J'ai exécuté brew cleanup qui a corrigé les liens symboliques.

35voto

Philip D. Points 125

Une approche un peu plus détaillée serait :

 brew doctor
brew cleanup
source ~/.zshrc

Ou une ligne :

 brew doctor && brew cleanup && source ~/.zshrc

Après cela, vous pouvez voir si vous obtenez des erreurs après avoir utilisé la source.

11voto

Jerry Points 241

Selon https://github.com/Homebrew/homebrew-core/issues/45009

essayer

sudo chown -R $(whoami):admin /usr/local/* \ && sudo chmod -R g+rwx /usr/local/*

ensuite

brew cleanup

7voto

xsnaruto Points 71

Certes, le moyen le plus simple de résoudre ce problème est d'exécuter : brew cleanup

N'oubliez pas d'exécuter cette commande avec la version x86 brew si vous avez conservé à la fois la version arm et la version x86.

C'était une erreur de très bas niveau de ma part, j'ai essayé à plusieurs reprises d'échouer avec la commande brew par défaut (je l'ai installée par le script et elle était déjà liée à la nouvelle version d'arm) avant de réaliser enfin que je devais utiliser x86 brew pour exécuter la commande cleanup .

4voto

Rachel_Miller Points 1253

Il s'avère que ces fichiers sont des alias de deux autres fichiers qui n'existaient pas.

C'est parce que l'Homebrew du macbook M1 est sous /opt/homebrew/ mais le zsh suppose qu'il est toujours sous /usr/local .

J'ai donc supprimé les deux alias et en ai créé de nouveaux indiquant où se trouvent réellement les fichiers : /opt/homebrew/completions/zsh/_brew et /opt/homebrew/completions/zsh/_brew_cask .

Ensuite, j'ai utilisé source ~/.zshrc . Aucun message d'erreur. Problème résolu!

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X