1F7D7052E69E7E73B2EFE8069E735526.jpg
- 在mac中使用
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
- 有了本地clone的倉庫,直接查看對應
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
- 大功告成!