brew安装某些软件包时如何不自动更新自制软件?

Leo*_*eon 7 python homebrew

我在 Mac 上安装了带有自制软件的 python3。然而,最新的Python3.6不能很好地与一些包配合使用,所以我决定回滚到3.5.2。

由于 homebrew/versions 已被弃用?我在目录中查看提交:/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula

git log python3.rb
Run Code Online (Sandbox Code Playgroud)

那里

commit ec545d45d4512ace3570782283df4ecda6bb0044
Author: BrewTestBot <brew-test-bot@googlegroups.com>
Date:   Tue Oct 11 06:42:06 2016 +0100

      python3: update 3.5.2_3 bottle.
Run Code Online (Sandbox Code Playgroud)

然后

git chekcout ec545 
brew install python3
Run Code Online (Sandbox Code Playgroud)

但是,似乎自制软件会自动更新我运行 $brew install [Formula]

?  Formula git:(ec545d4) brew install python3
    Updating Homebrew...
Run Code Online (Sandbox Code Playgroud)

brew安装某些软件包时如何不自动更新自制软件?或者如何使用自制软件安装python 3.5.2?

小智 7

回答第一个问题,如何在 brew 安装某些软件包时不自动更新自制软件?

  1. 黑客代码解决方案:

    vim /usr/local/Homebrew/Library/Homebrew/brew.sh

    在行后添加返回

    update-preinstall() {

    到:

    update-preinstall() {
    return
    
    Run Code Online (Sandbox Code Playgroud)
  2. 环境变量解决方案:

    export HOMEBREW_NO_AUTO_UPDATE=1

    或者

    export HOMEBREW_AUTO_UPDATING=0

    或者

    export HOMEBREW_UPDATE_PREINSTALL=0

如果您将始终工作,请将其添加到 .bash_profile


McG*_*ady 6

$ brew tap derekkwok/python or (zoidbergwill/python)
$ brew versions python
$ brew install python35
Run Code Online (Sandbox Code Playgroud)

如果您已经安装了旧版本的公式,您只需使用 brew 命令切换符号链接以引用它。

brew switch python 3.5.2
Run Code Online (Sandbox Code Playgroud)

如果您想保留某个版本并阻止其更新,您可以固定一个公式。

brew pin python
Run Code Online (Sandbox Code Playgroud)

你也可以试试这个 Python 版本管理pyenv
brew install pyenv
pyenv install 3.5.2

顺便说一下,您可以查看homebrew-install-specific-version-of-formula以了解更多信息。