关于自制软件:如何刷新特定版本的链接?

How can I brew link a specific version?

我在/usr/local/Cellar/libfoo里有几桶同一包装的,像/usr/local/Cellar/libfoo/1.0.1/usr/local/Cellar/libfoo/HEAD/usr/local/Cellar/libfoo/mycopy一样。

如何BREW链接到特定版本?


使用信息:

1
Usage: brew switch <formula> <version>

例子:

1
brew switch mysql 5.5.29

您可以使用info在系统上找到安装的版本。

1
brew info mysql

要查看要安装的可用版本,您可以提供一个dud版本号,因为BREW将用可用的版本号作出有益的响应:

1
brew switch mysql 0

更新(2014年10月15日):

brew versions命令已从BREW中删除,但如果您确实希望使用此命令,请首先运行brew tap homebrew/boneyard

安装旧版本的建议方法是从homebrew/versionsrepo安装,如下所示:

1
2
$ brew tap homebrew/versions
$ brew install mysql55

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


我在《MachomeBrew》一书中问到,你可以使用BREW开关在不同版本之间切换。

1
$ brew switch libfoo mycopy

获取libfoo的mycopy版本。


brew switch libfoo mycopy

如果同一软件包安装为Cellar//下的版本化子目录,则可以使用brew switch在不同版本之间切换。

这将列出已安装的版本(例如,我已将Cellar/sdl2/2.0.3编译为Cellar/sdl2/2.0.4)。

1
brew info sdl2

然后在它们之间切换

1
2
brew switch sdl2 2.0.4
brew info

现在信息显示2.0.4旁边的*

例如,要从源代码安装在Cellar//下,可以执行以下操作

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

检查安装位置

1
make install -n

如果一切看起来都正确

1
make install

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

我用的是brew version 0.9.5


例如,如果您已经安装了php5.4,可以通过以下方式将其切换到php5.5:

1
2
3
4
5
6
7
8
9
10
11
12
13
$ 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

如果@simon的答案在某些Mac电脑中不起作用,请遵循以下过程。

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

$brew update。$brew install swiftgen

然后按照下面的步骤运行旧版本的swiftgen。

第一步:brew uninstall swiftgen。步骤2:导航至:https://github.com/swiftgen/swiftgen/releases下载swiftgen版本:swiftgen-4.2.0.zip。

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

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

1
2
3
4
5
6
7
8
$ 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,stencil swiftkit v1.0.0,swiftgenkit v1.0.1)

enter image description here