Как я могу brew связать определенную версию?

У меня есть несколько бочонков того же пакета в /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>

Пример:

brew switch mysql 5.5.29

Вы можете найти версии, установленные в вашей системе, с помощью info.

brew info mysql

И чтобы увидеть доступные версии для установки, вы можете указать номер версии dud, так как brew будет полезно отвечать доступными номерами версий:

brew switch mysql 0

Обновление (15.10.2014):

Команда brew versions была удалена из brew, но если вы хотите использовать эту команду, сначала запустите brew tap homebrew/boneyard.

Рекомендуемый способ установки старой версии - установить из репо homebrew/versions следующим образом:

$ brew tap homebrew/versions
$ brew install mysql55

Подробную информацию обо всех способах установки более старой версии формулы читайте этот ответ.

Ответ 2

Я спросил в #machomebrew и узнал, что вы можете переключаться между версиями с помощью переключателя brew.

$ brew switch libfoo mycopy 

чтобы получить версию mycopy libfoo.

Ответ 3

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

Ответ 4

Если вы установили, например, 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

Ответ 5

Если ответ @simon не работает в некоторых маках, пожалуйста, следуйте нижеприведенному процессу.

Если вы уже установили swiftgen, используя следующие команды:

$brew update $ brew install swiftgen

затем выполните следующие шаги, чтобы запустить swiftgen со старой версией.

Шаг 1: brew uninstall swiftgen Шаг 2. Перейдите к: https://github.com/SwiftGen/SwiftGen/releases и загрузите swiftgen с версией: swiftgen-4.2.0.zip.

Распакуйте пакет в любом из каталогов.

Шаг 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)

введите описание изображения здесь