Macos 如何在M1 Macbook上运行Rosetta 2下的自制安装程序
我在M1笔记本电脑上。 这是我尝试安装自制软件时出现的错误:Macos 如何在M1 Macbook上运行Rosetta 2下的自制安装程序,macos,homebrew,apple-silicon,rosetta-2,Macos,Homebrew,Apple Silicon,Rosetta 2,我在M1笔记本电脑上。 这是我尝试安装自制软件时出现的错误: /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
/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安装程序?”从Homebrew github的开发者那里得到了答案 使用此选项安装软件包:
arch -x86_64 brew install <package>
另一个选择是在Finder中进入应用程序,选择Terminal并按cmd(⌘)+我打开并选中“使用Rosetta打开”选项
很抱歉,如果格式设置已关闭,请第一次发布解决方案。arch-x86_64/bin/bash-c“$(curl-fsSL)”在我的新M1 Mac上工作了在我安装Rosetta后,我添加了一个别名,以便可以像平常一样使用
brew安装
alias brew='arch-x86\u 64 brew'
我同意其他人的看法,您需要在原始命令前面添加arch-x86_64
,这样可以包括该别名,以帮助将来找到该线程的任何人
- /usr/sbin/softwareupdate--安装rosetta--同意许可
- arch-x86_64/bin/bash-c“$(curl-fsSL)”
- 别名brew='arch-x86_64 brew'
- brew安装azure cli
现在请尝试az登录。您可以开始了。我安装了两个brew实例,一个是使用Rosetta2运行的Intel版本,安装到/usr/local/bin,另一个是本机运行并安装到/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-search
和mbrew-install
。如果它们有效,我可以使用本机程序。例如:
mbrew install ag
如果brew
失败,我会尝试从源代码生成详细的输出,例如
mbrew install -sv rust
请注意,这需要一段时间,可能仍然会失败
如果仍然失败,(并且mbrew安装-sv go
会导致我出现分段错误)我有两种选择。使用ibrew search
和ibrew install
获取英特尔版本,或者检查详细的输出并查找问题依赖项。在某些情况下,依赖项上的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(感谢所有在此页面上发表文章的人):
将已安装的iTerm2.app应用程序复制到iRosetta2.app
按command+I以获取iRosetta.app的信息,单击使用Rosetta2打开
运行iRosetta2并从中使用此命令
像这样
/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,这是从堆栈溢出的其他贡献者那里获得的,使用iTerm2而不使用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架构不受支持的警告已经消失,并且生锈,安装时出现问题,并且没有从源代码编译。我认为Homebrew的优秀人员在圣诞节期间一直在努力工作。谢谢
编辑2月21日
自制团队已经宣布他们支持Apple silicon。因此我想知道是否可以删除我的别名,只使用brew安装Apple silicon。简短的回答是不!如果您从/usr/local运行brew,而不使用arch-x8664,它会抱怨/usr/local保留为英特尔默认前缀,并且需要使用/opt/Homebrew。So我将保留我的两个别名,并首先尝试mbrew,只有在本机brew失败时才使用ibrew。您可以更改Terminal的设置,以使用Rosetta启动它。
转到您的应用程序/实用程序文件夹,右键单击终端应用程序并选中“使用Rosetta打开”复选框
但老实说,我安装了没有Rosetta的自制软件。昨天刚删除了x86版本,安装了一个没有Rosetta的新版本。运行自制软件最简单的方法是使用Rosetta 2
1.复制您最喜欢的Rosetta终端
找到您最喜欢的终端,右键单击复制它,然后重命名它以便于识别。在本例中,我使用的是Big Sur 11.2.1上的默认终端应用程序
右键单击终端Rosetta并转到获取信息以选中使用Rosetta打开选项
2.安装自制软件
打开rosetta终端并运行以下命令:
/bin/bash-c“$(curl-fsSLhttps://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
运行此命令将要求您输入密码,然后它将向您提供所有将安装的内容以及将创建的新目录的信息
3.使用自制软件
一旦安装了自制软件,您就可以开始使用它将所需的软件包安装到M1 Mac中
运行以下命令以获取brew帮助:
brew帮助
要安装软件包,可以运行以下命令:
brew安装packagename
这就是在Apple M1 mac上安装并开始使用自制软件的全部内容。请注意,这将默认终端.app
始终模拟Intel CPU。如果您正在过渡,并且希望所有旧脚本都能正常工作,这可能会很有用,但可能不是您想要的。我正在尝试在新mac上使用rosetta运行pod安装,它确实如此不起作用。同样的错误。我想知道为什么这是对这个答案的一个改进-这已经被广泛涵盖-是复制Terminal.app并选择“使用Rosetta打开”作为副本。使用英特尔仿真版的Homebrew.Gold。这不是我要使用的解决方案,但我认为这是一个有用的建议。谢谢
/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
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