如何在自制程序中安装特定版本的公式?例如,postgresql-8.4.4而不是最新的9.0。
当前回答
简单工作流
现在Homebrew/versions已经被弃用,Homebrew/core支持一些具有新命名格式的公式版本。
要安装特定版本,例如postgresql 9.5,只需运行:
$ brew install postgresql@9.5
要列出可用版本,请使用@进行搜索:
$ brew search postgresql@
==> Searching local taps...
postgresql@10.1 ✔ postgresql@9.4 postgresql@9.5 postgresql@9.6
其他回答
以下是我如何降级KOPS(不支持版本控制)
# brew has a git repo on your localhost
cd /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core
git remote -v
origin https://github.com/Homebrew/homebrew-core (fetch)
origin https://github.com/Homebrew/homebrew-core (push)
# find the version of kops.rb you need
git log Formula/kops.rb
# checkout old commit
# kops: update 1.18.1 bottle.
git checkout 2f0ede7f27dfc074d5b5493894f3468f27cc73f0 -- Formula/kops.rb
brew unlink kops
brew install kops
# now we have old version installed
ls -1 /usr/local/Cellar/kops/
1.18.1
1.18.2
which kops
/usr/local/bin/kops
ls -l /usr/local/bin/kops
/usr/local/bin/kops -> ../Cellar/kops/1.18.1/bin/kops
kops version
Version 1.18.1
# revert to the newest version
brew uninstall kops
git checkout -f
brew link kops
kops version
Version 1.18.2
对于brew的最后一个版本来说,这很容易做到。
brew tap homebrew/versions
brew install subversion17 # for svn 1.7 branch instead of last available
brew install postgresql8 # for postgresql 8 (which you ask)
最接近@Lance的答案,但这对我来说并不奏效,在2023年,使用M1macOS13并尝试安装特定版本的opencv@4.
底线是:您应该用brew的GitHub repo中找到的远程opencv.rb文件的内容覆盖本地opencv.r文件的内容,该文件对应于您要安装的opencv版本。
本质上,我们希望更新包的.rb文件中的url和sha256。但是sha256在opencvReleases Github页面上不可用,在本地创建sha256会给我带来校验和错误。但是从提交历史记录中获取.rb文件可以解决这个问题。
分解:5个简单步骤
首先卸载包:brew卸载opencv@4查找要安装的软件包的正确版本的.rb文件在Github上的Homebrew>Homebrew core>Formula下搜索在opencv.rb文件的历史记录中:https://github.com/Homebrew/homebrew-core/commits/master/Formula/opencv.rb选择与所需版本相对应的提交,例如opencv:update 4.6.0_1 bottle。和查看文件。复制/下载文件的内容在系统上打开.rb文件:breweditopencv@4用从Github下载的文件替换此文件的内容使用.rb文件路径再次安装软件包:brew Install/opt/homebrew/Library/Taps/homebrew/homebrew core/Formula/oppencv.rb
这对我来说非常有效,然而,@Lance使用brew install的回答给出了一个错误:您的命令行工具(CLT)不支持macOS 13。
其他答案对我来说也不管用。
自那以后,一个更新的答案补充了@lance pollard已经发布的有效答案。
如何安装特定版本的公式(本示例中使用的公式为地形):
查找公式文件,例如:https://github.com/Homebrew/homebrew-core/blob/master/Formula/terraform.rb使用获取github历史记录中的提交版本https://github.com/Homebrew/homebrew-core/commits/master/Formula/terraform.rb或git-log-master--Formula/traform.rb(如果您在本地克隆了repo)。获取带有公式提交版本的原始gitURL:如果github.com中的公式链接是https://github.com/Homebrew/homebrew-core/blob/e4ca4d2c41d4c1412994f9f1cb14993be5b2c59a/Formula/terraform.rb,原始URL将为:https://raw.githubusercontent.com/Homebrew/homebrew-core/e4ca4d2c41d4c1412994f9f1cb14993be5b2c59a/Formula/terraform.rb使用:brew Install安装https://raw.githubusercontent.com/Homebrew/homebrew-core/e4ca4d2c41d4c1412994f9f1cb14993be5b2c59a/Formula/terraform.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>并升级。
推荐文章
- Homebrew:以新的formula@version格式列出可用版本
- 错误:无法在ARM处理器上的Homebrew中安装英特尔默认前缀(/usr/local)
- 酿造更新失败:未跟踪的工作树文件将被合并覆盖
- 在MacOS X上推荐用什么方式安装Node.js、nvm和npm ?
- 我如何安装imagemagick与自制?
- 我如何知道哪些自制配方是可升级的?
- "ERROR:root:code for hash md5 was not found"当使用任何hg mercurial命令时
- 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 '