我如何运行两个独立的HomeBREW安装? [英] How can I run two isolated installations of Homebrew?

查看:6
本文介绍了我如何运行两个独立的HomeBREW安装?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我希望在Apple Silicon Mac上同时安装和运行两个版本的Homebrew:ARM64版本和在Rosetta 2下运行的Intel版本。

Iknow我可以在任何BREW命令前面加上arch --x86_64,以便为该命令模拟英特尔,但这可能会导致您已经为ARM64构建的依赖关系的公式发生冲突。例如:

Error: gnupg dependencies not built for the x86_64 CPU architecture:
  pkg-config was built for arm64
  gettext was built for arm64
  readline was built for arm64
  openssl@1.1 was built for arm64

如何安装和运行两个独立的Homebrew版本(一个用于本机ARM64,另一个用于模拟英特尔),同时使它们各自安装的公式和依赖项保持独立?

推荐答案

  1. /opt/homebrew中在Apple Silicon上本地安装HomeBREW:

    mkdir homebrew && curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C homebrew
    
  2. 将英特尔模拟的Homebrew安装为默认/usr/local

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

    如果您尚未安装Rosetta 2,则需要首先运行softwareupdate --install-rosetta

  3. 为英特尔自制软件创建别名。我叫我的brow是因为O代表老。但是,嘿,你做你自己的事吧。

    ~/.zshrc(或您的外壳程序)中添加:

    alias brow='arch --x86_64 /usr/local/Homebrew/bin/brew'
    
  4. 将Arm Homebrew添加到您的路径中。

    ~/.zshrc(或您的外壳程序)中添加:

    # Homebrew on Apple Silicon
    path=('/opt/homebrew/bin' $path)
    export PATH
    

    如果您仍在bash,则为PATH=/opt/homebrew/bin:$PATH

  5. 确认

    which brew应返回/opt/homebrew/bin/brew

    brew --prefix应返回/opt/homebrew

    which brow应返回brow: aliased to arch --x86_64 /usr/local/Homebrew/bin/brew

    brow --prefix应返回/usr/local


如果您在两个自制软件中安装了相同的命令,它将默认为Apple Silicon(/opt/homebrew/),因为我们在路径中预先安装了该命令。要覆盖,请运行带有完整路径(/usr/local/bin/youtube-dl)的命令,或覆盖一个命令(PATH=/usr/local/bin youtube-dl)的PATH

我还在.zshrc(alias ib='PATH=/usr/local/bin')中创建了另一个方便的别名,这样我就可以在任何Homebrew安装的命令前面加上ib,强制使用该命令的英特尔版本:

~ ▶ which youtube-dl
/opt/homebrew/bin/youtube-dl
~ ▶ ib which youtube-dl
/usr/local/bin/youtube-dl

如果您希望将Intel作为默认brew,请将/opt/homebrew/bin添加到路径的结尾,而不是开头。

这篇关于我如何运行两个独立的HomeBREW安装?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆