Zsh 问题: compinit: 503: 没有这样的文件或目录:/usr/local/share/zsh/site-function/_ brew

我正在使用苹果 M1 MacBook pro。

当我安装 oh my zsh 时。当我将 export PATH="/opt/homebrew/bin:$PATH"添加到 ~/. zhrc 文件时。这个错误显示在我的终端中:

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

但是,我检查并发现这两个文件确实存在。 有人能告诉我问题出在哪里吗?

这是我的 ~/. zhrc 文件:

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








71036 次浏览

原来这些文件是另外两个不存在的文件的别名。

这是因为 M1 Macbook 的 Homebrew 低于 /opt/homebrew/,但是 zsh 假设它仍然低于 /usr/local

因此,我删除了这两个别名,并创建了指向文件实际所在位置的新别名: /opt/homebrew/completions/zsh/_brewand/opt/homebrew/completions/zsh/_brew_cask

然后我使用 source ~/.zshrc。没有错误消息。问题解决了!

我有一个类似的问题。我运行 brew cleanup修复符号链接。

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

试试看

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

那么

brew cleanup

的确,解决这个问题最简单的方法是运行: brew cleanup

只是,不要忘记,运行这个命令与 x86酿造版本,如果你保持胳膊和 x86版本。

这是我的一个低级错误,我尝试了无数次使用默认的 brew 命令失败(我通过脚本安装了它,它已经链接到新的 arm 版本) ,直到我最终意识到我需要使用 x86 brew 来执行 cleanup命令。

我卸载后得到了这个问题。只是删除它,如果你已经做了同样的:

rm -rf /usr/local/share/zsh/site-functions/_brew
brew install zsh-completions

修好了。

一种更为详细的方法是:

brew doctor
brew cleanup
source ~/.zshrc

或者一句话:

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

在此之后,您可以看到在使用源代码之后是否出现任何错误。

升级到 MacOS Bigsur 后也出现了类似的问题,做了 brew update之后就修好了

我有同样的问题,我注意到当更新我的点文件。

在 M1上,我从英特尔的酿造,英特尔和 ARM 的酿造,然后只是 ARM 的版本。对我来说,这个问题是由两个指向 Intel 版本的符号链接引起的,Intel 版本已经不存在了,而 ARM 版本则不存在。

我修复它通过改变符号链接,以指向正确的位置为 ARM 版本。

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

因此

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

我认为指向同一个酿造的桶是可以的,因为桶已经被合并了。

在其他方法都失败后,以上的回答对我起作用了。我查了 brew install zsh-completionsbrew cleanupcleanup停止抛出错误,我不再得到错误消息 compinit:503: no such file or directory: /usr/local/share/zsh/site-functions/_brew_cask

谢谢你,“不折不扣的!”!

所有自制的程序在我的机箱里都被破坏了,运行在苹果硅上。在 Homebrew3.0.0中从 /usr/local移动到 /opt/homebrew似乎是个问题。

我将新目录附加到 ~/.zshrc中的 FPATH,如下所示:

HOMEBREW_PREFIX=$(brew --prefix)
export FPATH="${HOMEBREW_PREFIX}/share/zsh/site-functions:${FPATH}"

如果运行 Oh-My-Zsh,那么这些代码行需要位于源代码 OMZ 的行之上,因为它自己也有一些完成魔法。还要记得清理你的。Zcomdump-files,它将被重新创建。

得到了类似的问题与另一条路径,甚至没有提到在我的

运行 brew update && brew upgrade解决了这个问题。

我与 /usr/local/share/zsh/site-functions/_mdatp有问题,我删除了这个链接文件,它完美的工作