brew 安装历史版本软件
背景
笔者在编译安装一个包时遇到编译失败,发现是一个依赖软件的版本过高导致,因为依赖的软件是通过 brew
安装,于是查找了一些资料解决了通过 brew
安装软件历史版本的问题。
解决
如果,软件有提供对应版本,则可以直接通过安装对应版本名称进行安装:
# 如搜索 node
$ brew search node
==> Formulae
libbitcoin-node node-build node@12 nodeenv
llnode node-sass node_exporter nodenv
node node@10 nodebrew
==> Casks
nodebox nodeclipse
# 如需要安装 node 10
$ ~ brew install node@10
笔者所需要安装的 libplist
2.0.0 版本,并没有提供对应的版本,搜索出默认是最新的 2.2.0 版本
$ brew search libplist
==> Formulae
libplist ✔
所以只能通过以下的方法来解决。
1、列出软件信息,找到 rb 安装文件
要看的是 From
这里的安装文件,因为笔者用的是国内中科大的镜像源,这个地址不能直接打开,所以需要在 Github 上找到 Homebrew 的源的这个地址;(如果是其他源的 http 地址,查找到方式一样,举一反三)
根据地址的规则,笔者要在 Github 打开的 url 是
https://github.com/Homebrew/homebrew-core/blob/master/Formula/libplist.rb
打开这个 url 便能看到 libplist 的安装信息了。
2、找到历史版本的 rb 文件进行安装
把这个库克隆下来,并找出 libplist 的提交记录
# 克隆本机的 homebrew 源即可
$ git clone git://mirrors.ustc.edu.cn/homebrew-core.git
$ cd homebrew-core
$ git log master -- Formula/libplist.rb
因为笔者要安装的是 2.0.0 版本,所以需要找到这个版本的提交信息。
根据 commit 信息,在 Github 中根据 url 找到这个版本的 rb 文件地址为
https://github.com/Homebrew/homebrew-core/blob/4891fbc1977d69a016f6602f9f7526b3458141b1/Formula/libplist.rb
确实是 2.0.0 的版本了
3、brew 安装此旧版本
$ brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/4891fbc1977d69a016f6602f9f7526b3458141b1/Formula/libplist.rb
后记
安装完旧版本的依赖之后,编译工作得以继续执行了。