brew install 安装的软件默认都是最新版本的。有时候我们需要旧版本(指定版本)的时候,应该怎么做呢?thrift 的过程中,希望安装 0.9.3 版本的 thrift ,但是默认 brew install thrift 安装的是 0.10.0 版本,所以就查看了下 brew install 是如何进行安装的。brew 是如何找这个源的,今天使用命令 brew info thrift 看了下,发现是有一个 From 的:$> brew info thrift
thrift: stable 0.10.0 (bottled), HEAD
Framework for scalable cross-language services development
https://thrift.apache.org/
/usr/local/Cellar/thrift/0.9.3 (95 files, 5.7M) *
Poured from bottle on 2017-02-08 at 19:52:24
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/thrift.rb
==> Dependencies
Build: bison ?
Required: boost ?, openssl ?
Optional: libevent ?
==> Requirements
Optional: python ?
==> Options
--with-erlang
Install Erlang binding
--with-haskell
Install Haskell binding
--with-java
Install Java binding
--with-libevent
Install nonblocking server libraries
--with-perl
Install Perl binding
--with-php
Install PHP binding
--with-python
Build with python support
--HEAD
Install HEAD version
==> Caveats
To install Ruby binding:
gem install thrift
To install PHP extension for e.g. PHP 5.5:
brew install homebrew/php/php55-thrift
brew 使用的 bottled 里的 thrift 为 0.10.0 版本!而我安装的为 0.9.3 版本,在第4行中有路径。第6行显示了 From !这个很重要。From ,然后在浏览器中打开了 https://github.com/Homebrew/homebrew-core。并找到对应的文件:Formula/thrift.rb ,发现这里其实是一个 ruby文件,打开后看到了下面主要的信息:url "https://www.apache.org/dyn/closer.cgi?path=/thrift/0.10.0/thrift-0.10.0.tar.gz"
sha256 "2289d02de6e8db04cbbabb921aeb62bfe3098c4c83f36eec6c31194301efa10b"
thrift.rb 中应该是包含对应版本的软件源 url 和 sha256 的。接下来查看 thrift.rb 文件修改历史,提示太多,所以简单粗暴的直接将 homebrew-core 整个仓库 git clone 了下来:git clone git@github.com:Homebrew/homebrew-core.git
0.9.3 版本的 thrift.rb 文件log:git log ./Formula/thrift.rb | less
0.9.3 就可以定位到对应的 commit,然后获取到 commmit : 9d524e4。接下来切换到对应的 commit :git checkout 9d524e4
./Formula/thrift.rb ,发现此时里面的 url 和 sha256 变成了如下:url "https://www.apache.org/dyn/closer.cgi?path=/thrift/0.9.3/thrift-0.9.3.tar.gz"
sha256 "b0740a070ac09adde04d43e852ce4c320564a292f26521c46b78e0641564969e"
brew 安装命令进行安装 0.9.3 版本:# 这里直接指定了 rb 文件,自己尝试了下,发现果然 OK
brew install ./Formula/thrift.rb
原文:https://www.cnblogs.com/rosepotato/p/11775732.html