如何在自制程序中安装特定版本的公式?例如,postgresql-8.4.4而不是最新的9.0。
当前回答
brew版本和brew安装https://raw.githubusercontent.com/Homebrew/homebrew-core/现在不支持<COMMIT-HASH>/Formula/<Formula>.rb。
您可以这样尝试:
$ brew extract --version 5.6.2 gradle vitahlin/core
$ brew install gradle@5.6.2
其他回答
目前,安装特定公式版本的旧方法已被弃用。因此,我们似乎必须使用brew edit[公式]。例如,假设我们要安装icu4c的62.1版本(例如postgresql10.5需要)
> brew edit icu4c
# drops you to editor
在这里,您必须将url、version和sha256(可能也是镜像)更改为相应的62.1字符串。
url "https://ssl.icu-project.org/files/icu4c/62.1/icu4c-62_1-src.tgz"
mirror "https://github.com/unicode-org/icu/releases/download/release-62-1/icu4c-62_1-src.tgz"
version "62.1"
sha256 "3dd9868d666350dda66a6e305eecde9d479fb70b30d5b55d78a1deffb97d5aa3"
然后运行brew重新安装icu4c,最终下载62.1版本。
⚠ 这个答案在2020年12月后不再有效:在HomeBrew 2.7.0中禁用了brew开关(2.6.0中已弃用)
对于2.7之前的Homebrew版本:
现在有一种更简单的方法来安装以前安装的公式的旧版本。简单使用
brew switch [formula] [version]
例如,我定期在Node.js 0.4.12和0.6.5之间切换:
brew switch node 0.4.12
brew switch node 0.6.5
由于brew开关只是更改符号链接,所以速度非常快。请参阅外部命令下Homebrew Wiki的更多文档。
我发现了比其他复杂解决方案更好的替代方案。
brew install https://raw.github.com/Homebrew/homebrew-versions/master/postgresql8.rb
这将下载并安装PostgreSQL 8.4.8
我通过开始遵循搜索回购和回购中的注释的步骤找到了这个解决方案。
经过一番研究发现,有人收集了一些罕见的配方奶粉。
如果您正在查找MySQL 5.1.x,请尝试一下。
brew install https://raw.github.com/Homebrew/homebrew-versions/master/mysql51.rb
其他答案都没有充分涵盖2022年的这一问题,因此我添加了以下说明,这些说明改编自Homebrew维护人员对安装特定酒桶版本的类似问题的回答:https://stackoverflow.com/a/62765875/6310633
卸载公式
brew uninstall <formula>
切换到自制核心回购的克隆,并重置为包含所需版本的提交。
cd "$(brew --prefix)/Library/Taps/homebrew/homebrew-core/Formula"
git log <formula>.rb # examine recent commits for <formula>
git reset --hard <commit-sha> # reset clone to last known-good commit for <formula>
为您的版本签出一个新的分支,这样brew不会在每次命令后自动刷新master,安装您的公式并锁定它。
git checkout -b <formula>-downgrade-<version>
brew install <formula>
brew pin <formula>
清理
git checkout master
brew update
当您准备好升级公式时,您可以像往常一样酿造unpin<formula>并升级。
基于@tschundee和@Debilski的更新1所描述的工作流,我自动化了该过程,并在此脚本中添加了清理。
下载它,将其放到您的路径中,然后brewv<formula_name><wanted_version>。对于特定OP,它将是:
cd path/to/downloaded/script/
./brewv postgresql 8.4.4
:)
推荐文章
- homebrew、macports或其他软件包安装工具的区别/用途是什么?
- Ruby Bundle Symbol not found: _SSLv2_client_method (LoadError)
- Virtualenvs中的破引用
- brew install XXX和brew cask install XXX有什么区别
- Brew安装docker不包括docker引擎?
- 我如何使用brew安装Python作为默认的Python?
- 如何用自制程序更新公式?
- 在安装Homebrew后,我得到' zsh:命令未找到:brew '
- 升级所有通过家酿桶安装的桶
- 如何在OSX上更新Xcode到最新版本?
- 如何找到Homebrew的可安装软件包列表?
- 错误2002 (HY000):无法通过套接字/tmp/ MySQL .sock连接到本地MySQL服务器
- 家酿酒桶选项不被认可?
- Gem eventmachine致命错误:'openssl/ssl.h'文件未找到
- 如何避免“无法加载这样的文件- utils/popen”从自制的OSX