Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

zsh problem: compinit:503: no such file or directory: /usr/local/share/zsh/site-functions/_brew

I am using apple M1 MacBook pro.

When I installed oh my zsh. When I addedexport PATH="/opt/homebrew/bin:$PATH" to my ~/.zshrc file. This error was shown in my 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

However, I checked and found that these two files do exsist. Can someone tell me that the problem is?

This is my ~/.zshrc file:

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/[email protected]/lib"
export CPPFLAGS="-I/opt/homebrew/opt/[email protected]/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




like image 760
Rachel_Miller Avatar asked Oct 05 '22 06:10

Rachel_Miller


People also ask

Why is zsh failing to find a specific directory?

Essentially, zsh will try the name of your command with each path and execute the first find ( /usr/sbin/foo, /usr/bin/foo, etc.). If any of the listed directories does not exist, there will be no error message, zsh will simply not find a binary there and try the next one. The issue in your case is triggered by trying to execute $PATH.

How does zsh find work?

Essentially, zsh will try the name of your command with each path and execute the first find (/usr/sbin/foo, /usr/bin/foo, etc.). If any of the listed directories does not exist, there will be no error message, zsh will simply not find a binary there and try the next one.

How do I see the content of the path in zsh?

If you want to see the content of PATH use echo: PATH is a colon separated list of directories to search for commands. Essentially, zsh will try the name of your command with each path and execute the first find ( /usr/sbin/foo, /usr/bin/foo, etc.).


9 Answers

I had a similar issue. I ran brew cleanup which fixed the symlinks.

like image 442
Monica Granbois Avatar answered Oct 27 '22 04:10

Monica Granbois


I had the same this issue which I noticed when updating my dot files.

On the M1 I went from Intel brew to Intel and ARM brew then to just the ARM version. The problem for me was caused by two symbolic links pointing to the Intel version, which no longer existed, and not the ARM version.

I repaired it by changing the symbolic links to point to the right locations for the ARM version.

ln -fsv /opt/homebrew/completions/zsh/_brew /usr/local/share/zsh/site-functions/_brew

ln -fsv /opt/homebrew/completions/zsh/_brew /usr/local/share/zsh/site-functions/_brew_cask

thus

lrwxr-xr-x    35 xxxx  2 Jun 16:02  _brew -> /opt/homebrew/completions/zsh/_brew
lrwxr-xr-x    35 xxxx  2 Jun 16:01  _brew_cask -> /opt/homebrew/completions/zsh/_brew

I think _brew_cask pointing to the same _brew is okay since casks have been merged.

like image 42
AndrewC Avatar answered Oct 27 '22 04:10

AndrewC


An approach a little bit more detailed would be:

brew doctor
brew cleanup
source ~/.zshrc

Or one line:

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

After this, you can see if you get any errors after using source.

like image 39
Philipos D. Avatar answered Oct 27 '22 03:10

Philipos D.


@sinestandly's answer above worked for me after the other methods failed. I ran brew install zsh-completions and then brew cleanup. The cleanup stopped throwing errors and I no longer get the error message compinit:503: no such file or directory: /usr/local/share/zsh/site-functions/_brew_cask.

Thank you, @sinestandly!

like image 15
Andrew Kawel Avatar answered Oct 27 '22 05:10

Andrew Kawel


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

try

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

then

brew cleanup

like image 11
Jerry Avatar answered Oct 27 '22 04:10

Jerry


True, the easiest way to fix this problem is run: brew cleanup

Just, don't forget that run this command with the x86 brew version if u kept both of arm and x86 version.

This was a very low-level mistake of mine, I tried numerous times to fail with the default brew command (I installed it by the script and it already linked to the new arm version) before I finally realised I needed to use x86 brew to execute the cleanup command.

like image 8
xsnaruto Avatar answered Oct 27 '22 05:10

xsnaruto


I got this issue after uninstalling brew. Just remove it if you've done the same:

rm -rf /usr/local/share/zsh/site-functions/_brew
like image 8
Micael Mota Avatar answered Oct 27 '22 03:10

Micael Mota


Turns out these files are aliases of other two files that did not exist.

This is because the Homebrew of M1 macbook is under/opt/homebrew/ but the zsh assumed it is still under /usr/local.

So I deleted the two aliases and made new ones pointing to where the files actually are:/opt/homebrew/completions/zsh/_brewand/opt/homebrew/completions/zsh/_brew_cask.

Then I usedsource ~/.zshrc. No error messages. Problem solved!

like image 4
Rachel_Miller Avatar answered Oct 27 '22 05:10

Rachel_Miller


brew install zsh-completions

Fixed it.

like image 3
sinestandly Avatar answered Oct 27 '22 04:10

sinestandly