修复zsh命令未找到:brew?(安装Homebrew)

71

我正在尝试在我的 M1 Mac 上安装 Homebrew。我的默认 shell 是 zsh,我想保持这种方式。我运行了以下命令:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

它说安装成功了,但是尝试运行 brew doctorbrew help 命令时都返回了错误信息:zsh: command not found: brew。

我对 shell 或编程不是很了解,所以希望能够得到任何帮助。

然后我想尝试卸载并重新安装,于是运行了以下命令:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"

但是出现了一个警告,建议迁移到以下命令:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall.sh)"

这让我认为可能只是安装在了错误的 shell 中?


它提示“找不到brew”。brew应该在/usr/local/bin/brew中。是吗?/usr/local/bin是否在您的PATH(在您的.zshrc文件中)中? - Olsonist
Brew似乎不在我的/usr/local/bin目录中,而且我认为我没有.zshrc文件。 - atdinh
8个回答

258
cd /opt/homebrew/bin/

PATH=$PATH:/opt/homebrew/bin

cd

touch .zshrc

echo export PATH=$PATH:/opt/homebrew/bin >> .zshrc

在终端中按照那个顺序运行命令,你将会编辑路径并创建缺失的.zshrc文件,将路径输出到这个新文件中。

现在你应该能够使用:

brew doctor

应该是这样说:“您的系统已准备好冲泡。”


26
这个方法适用于我的 M1 MacBook Pro。谢谢,老兄! - Christopher Mellor
2
这对我的 M1 MacBook Air 有效,谢谢兄弟。 - Andres Guillen Hernandez
谢谢,这对我的MacBook Pro起作用了。 - Samiksha Jagtap
8
cd:无此文件或目录:/opt/homebrew/bin/ - WannaBeGeek
1
使用 MacBook Pro 和 Ventura 13.2.1 进行工作。谢谢。 - Sola Oderinde
显示剩余7条评论

30

这对我很有帮助:

  • 将Homebrew添加到您的路径中,方法是在~/.zprofile文件中进行配置:

  • echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
    eval "$(/opt/homebrew/bin/brew shellenv)"
    

24

macOS的bash弃用警告可以安全地忽略,或者您可以将export BASH_SILENCE_DEPRECATION_WARNING=1添加到~/.bashrc以永久静音。

您正在使用的初始brew设置脚本已被弃用,您需要使用/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"。我浏览了一下该脚本,我认为它实际上也兼容zsh,但不是100%确定。这将使其可通过任何shell访问,只要您的PATH中有/usr/local/bin。(在您的~/.zshrc中添加export PATH="/usr/local/bin:$PATH",或者使用zsh特定语法path+=/usr/local/bin)。

如果您运行which zsh仍然会看到一些输出;如果您的默认shell确实发生了更改,您可以使用chsh -s /bin/zsh将其更改回来。

编辑:

我忽略了你说你有一个M1 Mac。根据安装脚本,在基于ARM的Mac上,brew前缀为/opt/homebrew(显然这是为了回避需要在/usr/local中进行操作的sudo)。我没有新的Mac来测试,但是将path+=/opt/homebrew/bin添加到位于~/.zshrc的新文件应该可以解决问题。


9
我可以证实,在M1上将 path+=/opt/homebrew/bin 添加到 ~/.zshrc 中确实可以解决这个问题。 - Matt Kocaj
1
M1 在最新的操作系统上修复(Big Sur 11.21.1)可以工作。当然需要重新启动后生效。 - David Ryan
如果你不小心把你的shell搞乱了,以至于像 ls 这样的常用命令甚至都找不到了,请参考这个链接:https://dev59.com/aGMl5IYBdhLWcg3wZWWE - jsky

8

//在终端中逐个运行以下命令

  1. PATH=$PATH:/opt/homebrew/bin
  2. cd
  3. touch .zshrc
  4. echo export PATH=$PATH:/opt/homebrew/bin >> .zshrc
  5. brew doctor

然后您就可以使用brew进行安装了。


3

我遇到了同样的问题,所以我重新安装了它。我把这个命令复制到终端。

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

当我获得贴士时

Next steps:
- Run these three commands in your terminal to add Homebrew to your PATH:
echo '# Set PATH, MANPATH, etc., for Homebrew.' >> /Users/ven/.zprofile
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/ven/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"
- Run brew help to get started
- Further documentation:
https://docs.brew.sh

然后我逐一将三个命令复制到终端中。

echo '# Set PATH, MANPATH, etc., for Homebrew.' >> /Users/ven/.zprofile
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/ven/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"

在终端中输入“brew”,然后它就可以工作了。

请注意:命令应从终端输出的下一步骤部分复制(而不是此处),因为它是自定义的并反映了您的Mac电脑帐户用户名。 - Elmar

3

我遇到了同样的问题,并通过以下步骤解决:

  1. 从终端中输入命令 sudo vi ~/.zshrc
  2. 进入插入模式(在键盘上键入 I)并粘贴如下代码:
    export PATH="/usr/local/bin:/usr/local/sbin:~/bin:$PATH"
  3. 键入 :wq! 保存退出vim编辑器。
  4. 关闭终端。
  5. 重新打开终端,输入 brew 命令以确认它是否正常工作。

如果问题仍然存在:

默认情况下,Homebrew 将一些软件包安装在以下目录中: /usr/local/bin/brew , /usr/local/share/doc/homebrew。

值得检查是否已经在这些目录中安装了 HomeBrew。在 Mac 上打开 Finder 的快捷键为 command + shift + G。如果您无法找到它,则可能需要重新安装 HomeBrew。

我使用的是 Macbook,macOS Big Sur - 版本 11.6.4。


我正在使用macOS Monterey 12.3.1版本,这也为我解决了问题。谢谢! - Lochness Monster

3

我使用的是M2 MacBook,你只需要按照安装后brew给出的指示即可!


1
哇!太感谢了!不知道我怎么错过了那些指示。 - Peter_Fretter

2
在我的情况下(macOS M1),homebrew 的表现非常不一致 - 每次我在一个新的终端会话中运行 brew 命令时都会出现“未找到”错误。原来是 .zshrc 中的 opt/homebrew/... 值被其他 PATH 值在某个时候覆盖了。这里的顺序非常关键。

因此,要补充 @6754534367 的答案,您需要确保您的 PATH 反映了 homebrew 优先于其他 PATH 值(放置在大多数其他值之前)。另请参见:https://dev59.com/HFsV5IYBdhLWcg3w4iJA#35677348

附注:方便起见,也要包括 sbin PATH

最终,我的 .zshrc 文件如下所示(例如):

export PATH=/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/joris.van.der.burgh/Library/Application_Support/JetBrains/Toolbox/scriptseval

这样做之后,我的自制酿造饮料一直很好,不再需要医生了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接