如何在自制程序中安装特定版本的公式?例如,postgresql-8.4.4而不是最新的9.0。
当前回答
意外升级Postgres?
我的案例:
postgresql意外地从11升级到12(在运行brew升级后没有参数)我想让Postgres保持11岁。
解决方案:
停止数据库:
brew services stop postgresql
安装Postgres 11:
brew install postgresql@11
启用它:
brew link postgresql@11 --force
(可选)将数据库数据目录从postgres重命名为postgres@11:
cd /usr/local/var
ls -lh
mv postgresql@11 postgresql@11-fresh-backup
mv postgres postgresql@11
启动数据库:
brew services start postgresql@11
如果有任何错误,请检查/usr/local/var/log/postgresql@11.log(注意@11)。
其他回答
编辑:2021,由于github安装被弃用,这个答案不再起作用。(感谢蒂姆·史密斯的更新)。
安装旧的酿造包版本(Flyway 4.2.0示例)
查找本地自制程序gitdir或本地克隆homebrew/homebrew内核
cd/usr/local/Homebrew/Library/Taps/Homebrew/Homebrew内核/
OR
git克隆git@github.com:Homebrew/Homebrew-core.git
列出所有可用版本
git log master--Formula/flyway.rb
复制所需版本的提交ID并直接安装
brew安装https://raw.githubusercontent.com/Homebrew/homebrew-core/793abfa325531415184e1549836c982b39e89299/Formula/flyway.rb
对于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)
对于当前不在默认酿造配方中的版本,您可以使用以下工具轻松创建自己的水龙头:https://github.com/buildtools-version-taps/homebrew-versions-tap-tool
按照@halfcube的建议,这非常有效:
查找您要查找的库https://github.com/Homebrew/homebrew-core/tree/master/Formula单击它:https://github.com/Homebrew/homebrew-core/blob/master/Formula/postgresql.rb单击“历史记录”按钮查看旧提交:https://github.com/Homebrew/homebrew-core/commits/master/Formula/postgresql.rb单击所需的选项:“postgresql:update version to 8.4.4”,https://github.com/Homebrew/homebrew-core/blob/8cf29889111b44fd797c01db3cf406b0b14e858c/Formula/postgresql.rb单击“原始”链接:https://raw.githubusercontent.com/Homebrew/homebrew-core/8cf29889111b44fd797c01db3cf406b0b14e858c/Formula/postgresql.rbbrew安装https://raw.githubusercontent.com/Homebrew/homebrew-core/8cf29889111b44fd797c01db3cf406b0b14e858c/Formula/postgresql.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>并升级。
推荐文章
- 在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 '
- 升级所有通过家酿桶安装的桶
- 如何在OSX上更新Xcode到最新版本?
- 如何找到Homebrew的可安装软件包列表?