Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 如何在M1 Macbook上运行Rosetta 2下的自制安装程序_Macos_Homebrew_Apple Silicon_Rosetta 2 - Fatal编程技术网

Macos 如何在M1 Macbook上运行Rosetta 2下的自制安装程序

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

我在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 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