2012-11-20 63 views
129

我有同樣的包在/usr/local/Cellar/libfoo幾個小桶一樣/usr/local/Cellar/libfoo/1.0.1/usr/local/Cellar/libfoo/HEAD/usr/local/Cellar/libfoo/mycopy如何釀造鏈接特定版本?

我怎樣才能釀造鏈接到一個特定的版本?

回答

242

的使用信息:

Usage: brew switch <formula> <version> 

例子:

brew switch mysql 5.5.29 

你可以找到安裝在系統上與info版本。

brew info mysql 

並查看可用的版本安裝,你可以提供一個啞彈的版本號,BREW會幫忙,與現有的版本號迴應:

brew switch mysql 0 

更新(15.10。 2014):

brew versions命令已經從brew中刪除,但是,如果您確實希望使用此命令,請先運行brew tap homebrew/boneyard

安裝舊版本的推薦方法如下:從homebrew/versions回購安裝:

$ brew tap homebrew/versions 
$ brew install mysql55 

有關所有安裝式的舊版本的方式的詳細信息讀取this answer

+1

我遵循15.10.2014更新方法,需要將/usr/local/Cellar/mysql55/5.5.40/bin添加到我的路徑中。大部分Homebrew的東西在/ usr/local/bin中有一個符號鏈接到/ usr/local/Cellar ...,但更新的安裝不會自動添加這個符號鏈接。 – Powers

+1

您仍需要鏈接已安裝的版本並使用以下命令覆蓋當前鏈接:brew link --overwrite mysql55 –

12

我在#machomebrew中問過,並瞭解到您可以使用brew開關切換不同的版本。

$ brew switch libfoo mycopy 

獲取libfoo的版本mycopy。

2

如果你已經安裝了,例如,PHP 5.4也可以通過以下方式切換到PHP 5.5:

$ php --version 
PHP 5.4.32 (cli) (built: Aug 26 2014 15:14:01) 
Copyright (c) 1997-2014 The PHP Group 
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies 

$ brew unlink php54 

$ brew switch php55 5.5.16 

$ php --version 
PHP 5.5.16 (cli) (built: Sep 9 2014 14:27:18) 
Copyright (c) 1997-2014 The PHP Group 
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies 
4

brew switch libfoo mycopy

您可以使用brew switch到同一個包的不同版本之間切換,如果它安裝爲Cellar/<packagename>/

下的版本子目錄安裝這將列出安裝的版本(例如我有Cellar/sdl2/2.0.3,我編譯成Cellar/sdl2/2.0.4

brew info sdl2 

然後在它們之間切換

brew switch sdl2 2.0.4 
brew info 

信息現在顯示旁邊的2.0 *。4

Cellar/<packagename>/<version>下從源代碼從cd $(brew --Cellar)安裝例如,您可以做

cd ~/somewhere/src/foo-2.0.4 
./configure --prefix $(brew --Cellar)/foo/2.0.4 
make 

檢查那裏得到與

make install -n 

安裝,如果一切看起來正確

make install 

然後在版本之間切換。

我使用brew version 0.9.5