使用brew install安装依赖时,免不了需要安装一些历史版本依赖,在老版本中通常可以找到历史的tb文件直接brew install进行安装,新版禁止了这种做法,提供了更好的办法,本文分享一下如何HomeBrew安装历史版本依赖库。
概述
这里以fplll为例,默认使用brew install fplll
安装时,下载的是5.4.5版本(截止2024年1月18日),但是有部分项目使用的是老版本的fplll库,和新版存在一些不兼容的问题。
而使用brew info fplll
查看时,可以发现,只有5.4.5版本能安装,这个时候我们需要一些办法来安装历史版本。
atfwus@xxxMacBook-Pro ~ % brew info fplll
==> fplll: stable 5.4.5 (bottled)
Lattice algorithms using floating-point arithmetic
https://github.com/fplll/fplll
Not installed
From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/fplll.rb
License: LGPL-2.1-or-later
==> Dependencies
Build: automake ✔
Required: gmp ✔, mpfr ✔
==> Analytics
install: 45 (30 days), 169 (90 days), 457 (365 days)
install-on-request: 40 (30 days), 145 (90 days), 394 (365 days)
build-error: 0 (30 days)
历史做法(已舍弃,老版本可以这么用)
老版本(具体多老就没有去查证了,反正4.0以上都不可以这么用,如果觉得版本比较老,可以尝试婴一下)的做法是:
- 1.去https://github.com/Homebrew/homebrew-core/blob/master/Formula 下找到对应库的rb文件。也可以直接搜,例如
fplll.rb
。 - 2.查看该文件的历史commit。
- 3.找到指定版本的commit,获取链接。
- 4.
brew install url
,这里url就是上面获取的链接。
例如,我要安装fplll的5.4.2版本,先找到rb文件:
查看历史commit,找到5.4.2的commit:
进入,获得commit的url:https://raw.githubusercontent.com/Homebrew/homebrew-core/33f7372ec9f285fe786c4de17a258e0758158485/Formula/fplll.rb
brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/33f7372ec9f285fe786c4de17a258e0758158485/Formula/fplll.rb
如果是老版本,就已经安装成功了,新版本的话,会出现如下报错:
Error: Installation of fplll from a GitHub commit URL is unsupported! `brew extract fplll` to a stable tap on GitHub instead.
新版方法
新版是使用brew tap-new
和brew extract
来实现安装历史版本。方法如下:
- 1.创建本地的 formula 文件
- 2.创建某个历史版本的副本
- 3.安装指定版本
创建本地的 formula 文件:
brew tap-new $USER/local-fplll
创建某个历史版本的副本:
brew extract --version=5.4.2 fplll $USER/local-fplll
这个时候我们就可以看到这个版本了:
atfwus@xxxMacBook-Pro ~ % brew search fplll
==> Formulae
atfwus/local-fplll/fplll@5.4.2 ✔ fplll
安装指定版本:
brew install $USER/local-fplll/fplll@5.4.2
这样就成功的安装了fplll5.4.2的版本。
ATFWUS 2024-01-18