111

我在 M1 MacBook 上。这是我尝试安装 Homebrew 时的错误:

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

Homebrew is not (yet) supported on ARM processors!
Rerun the Homebrew installer under Rosetta 2.
If you really know what you are doing and are prepared for a very broken experience you can use another installation option for installing on ARM:
  https://docs.brew.sh/Installation

那么如何“在 Rosetta 2 下重新运行 Homebrew 安装程序。”?

4

8 回答 8

135

从 Homebrew github https://github.com/Homebrew/brew/issues/9173中的开发人员那里得到了答案

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

使用它来安装软件包:

arch -x86_64 brew install <package>

如果您尚未安装 Rosetta 2 以在 ARM Mac 上模拟 Intel CPU,您将收到错误消息arch: posix_spawnp: /bin/bash: Bad CPU type in executable。使用以下命令提示安装 Rosetta 2:

softwareupdate --install-rosetta
于 2020-11-17T21:16:42.850 回答
54

我安装了两个 brew 实例,使用 Rosetta2 运行并安装到 /usr/local/bin 的 Intel 版本和本机运行并安装到 /opt/homebrew/bin 的 Arm 版本。现在一切正常,我不必使用 Rosetta 启动 iTerm。

我有这些别名来达到这两个版本。

ibrew='arch -x86_64 /usr/local/bin/brew'
mbrew='arch -arm64e /opt/homebrew/bin/brew'

我首先在我的路径中有本机版本:

path=( /opt/homebrew/bin /opt/homebrew/opt /usr/local/bin /usr/bin /bin /usr/sbin /sbin /Library/Apple/usr/bin )

现在我可以尝试mbrew searchmbrew install. 如果他们工作,我很高兴使用本机程序。例如:

mbrew install ag

如果brew失败,我尝试从源代码构建,并带有详细的输出,例如

mbrew install -sv rust

请注意,这需要一段时间,并且可能仍会失败。

如果它仍然失败,(并mbrew install -sv go导致我出现分段错误)我有两个选择。使用ibrew searchandibrew install来获取 Intel 版本,或检查详细输出并查找问题依赖项。在某些情况下install -s,依赖项足以让本机 brew 工作。

我必须强调原生 brew 总是打印这个警告

Warning: You are running macOS on a arm64 CPU architecture.
We do not provide support for this (yet).
Reinstall Homebrew under Rosetta 2 until we support it. 

因此,请自行决定。

为了完整起见,假设您安装了 iTerm2、Rosetta2 和 Xcode 命令行工具,我这样做是为了在 Rosetta 下安装 brew(感谢所有在我之前在此页面上发布过的人):

  1. 将安装的 iTerm2.app 应用程序复制到 iRosetta2.app
  2. 按 command+I获取iRosetta.app 的信息,单击Open Using Rosetta2
  3. 运行 iRosetta2 并从https://brew.sh使用此命令

像这样

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)
alias ibrew='arch -x86_64 /usr/local/bin/brew' # put this in ~/.zshrc

我这样做是为了安装本机 brew,取自 Stack Overflow 和Homebrew 替代安装站点的其他贡献者,使用 iTerm2 而不使用 Open Using Rosetta2

mkdir ~/homebrew
curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C homebrew
sudo mv ~/sudo mv homebrew /opt
mbrew='arch -arm64e /opt/homebrew/bin/brew' # for .zshrc
export PATH="/opt/homebrew/bin:/opt/homebrew/opt:$PATH" # also for .zshrc

编辑

时间过去了,我根据 Fernando García Redondo 的观察将架构更改为 arm64e。现在关于不支持 Arm 架构的警告已经消失,Rust 和 Go 安装时出现问题并且没有从源代码编译。我认为 Homebrew 的好人在圣诞节期间一直在努力工作。谢谢!

2月21日编辑

Homebrew 团队宣布他们支持 Apple 芯片。所以我想知道我是否可以删除我的别名并只使用 brew 来安装 Apple 芯片。最简洁的答案是不!如果您从 /usr/local 运行没有 arch -x86_64 的 brew,它会抱怨 /usr/local 被保留为 Intel 默认前缀,并且需要使用 /opt/homebrew。因此,我将保留我的两个别名并首先尝试 mbrew,并且仅在本机 brew 失败时才使用 ibrew。

于 2020-12-23T12:47:16.253 回答
51

另一个选项是进入 Finder 中的应用程序,选择终端并按⌘</kbd>+I and check the "Open using Rosetta" option.

抱歉,如果格式关闭,第一次发布解决方案。

于 2020-11-17T23:47:00.713 回答
19

运行 Homebrew 最简单的方法是使用 Rosetta 2。

1. 为 Rosetta 复制您最喜欢的终端

找到您最喜欢的终端,右键单击复制它,然后重命名它以便于识别。在此示例中,我使用 Big Sur 11.2.1 上的默认终端应用程序。

重复终端右键单击选项

重复终端 Rosetta m1 自制软件

右键单击Terminal Rosetta并转到Get Info以检查Open using Rosetta选项。

在此处输入图像描述

2.安装自制软件

打开 Rosetta 终端并运行以下命令:

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

运行此命令将要求您输入密码,然后它将为您提供有关它将安装的所有内容以及它将创建哪些新目录的信息。

3. 使用自制软件

安装 HomeBrew 后,您可以开始使用它将所需的软件包安装到 M1 Mac 中。

运行以下命令以获取 brew 帮助:

brew help

要安装软件包,您可以运行以下命令:

brew install packagename

这就是在 Apple M1 Mac 上安装和开始使用 Homebrew 的全部内容。

编辑:谢谢大家!投票以帮助其他开发者!Homebrew 3.0.0 现在正式支持 Apple Silicon ( https://brew.sh/2021/02/05/homebrew-3.0.0/ )

于 2021-02-21T04:57:33.773 回答
13

安装 Rosetta 后,我添加了一个别名,以便我可以brew install <package>正常使用。

alias brew='arch -x86_64 brew'

我同意其他人的观点,因为您需要arch -x86_64在原始命令前面添加

于 2020-12-10T22:20:54.220 回答
8

arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh )" 在我的新 M1 Mac 上工作

于 2020-11-24T15:44:08.633 回答
6

在下面做

现在尝试 az 登录。你已准备好出发

于 2020-12-14T04:26:53.220 回答
-1

您可以更改终端的设置以使用 Rosetta 启动它。转到您的应用程序/实用程序文件夹,右键单击终端应用程序并选中复选框“使用 Rosetta 打开”

但老实说,我在没有 Rosetta 的情况下安装了 Homebrew。昨天刚刚删除了 x86 版本并安装了一个没有 Rosetta 的新版本。

于 2021-01-08T09:06:14.500 回答