如何酿造链接特定版本?


158

我在/usr/local/Cellar/libfoolike中有几个包装相同的小桶/usr/local/Cellar/libfoo/1.0.1/usr/local/Cellar/libfoo/HEAD并且/usr/local/Cellar/libfoo/mycopy

如何制作链接到特定版本的链接?

Answers:


310

用法信息:

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

有关安装旧版本公式的所有方式的详细信息,请阅读此答案


1
我遵循2014年10月15日的更新方法,需要将/usr/local/Cellar/mysql55/5.5.40/bin添加到我的路径。大多数自制软件在/ usr / local / bin中具有到/ usr / local / Cellar ...的符号链接,但是更新的安装不会自动添加此符号链接。
鲍尔斯

1
您仍然需要链接已安装的版本,并使用以下方法覆盖当前链接:brew link --overwrite mysql55
Yann VR

2
不幸的是,brew tap homebrew/versions现在给我一个错误Error: homebrew/versions was deprecated. This tap is now empty as all its formulae were migrated`
Juraj Martinka '19

有没有一种方法可以找出可用的版本,而无需进行versions或仅凭猜测进行检查switch
凯尔·斯特兰德

1
版本已弃用,所以我认为剩下的唯一方法是找到一个旧公式并从直接URL安装它
SimonW

12

我在#machomebrew中询问,了解到您可以使用Brew开关在版本之间进行切换。

$ brew switch libfoo mycopy 

获取libfoo的版本mycopy。


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 ~/somewhere/src/foo-2.0.4
./configure --prefix $(brew --Cellar)/foo/2.0.4
make

检查它的安装位置

make install -n

如果一切看起来正确

make install

然后从cd $(brew --Cellar)进行版本之间的切换。

我正在使用 brew version 0.9.5


3

例如,如果您已安装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

0

如果@simon的答案在某些mac机中不起作用,请执行以下过程。

如果您已经使用以下命令安装了swiftgen:

$ brew update $brew install swiftgen

然后按照以下步骤操作,以在旧版本中运行swiftgen。

步骤1:brew uninstall swiftgen 步骤2:导航至:https : //github.com/SwiftGen/SwiftGen/releases 并下载版本为swiftgen-4.2.0.zip的swiftgen。

将软件包解压缩到任何目录中。

步骤3:在终端中执行以下操作:

$ mkdir -p ~/dependencies/swiftgen
$ cp -R ~/<your_directory_name>/swiftgen-4.2.0/ ~/dependencies/swiftgen
$ cd /usr/local/bin
$ ln -s ~/dependencies/swiftgen/bin/swiftgen swiftgen
$ mkdir ~/Library/Application\ Support/SwiftGen
$ ln -s ~/dependencies/swiftgen/templates/ ~/Library/Application\ Support/SwiftGen/

$ swiftgen --version

您应该获得:SwiftGen v0.0(Stencil v0.8.0,StencilSwiftKit v1.0.0,SwiftGenKit v1.0.1)

在此处输入图片说明

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.