У меня есть несколько бочонков того же пакета в /usr/local/Cellar/libfoo
как /usr/local/Cellar/libfoo/1.0.1
, /usr/local/Cellar/libfoo/HEAD
и /usr/local/Cellar/libfoo/mycopy
Как я могу brew ссылаться на определенную версию?
У меня есть несколько бочонков того же пакета в /usr/local/Cellar/libfoo
как /usr/local/Cellar/libfoo/1.0.1
, /usr/local/Cellar/libfoo/HEAD
и /usr/local/Cellar/libfoo/mycopy
Как я могу brew ссылаться на определенную версию?
Информация об использовании:
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
Подробную информацию обо всех способах установки более старой версии формулы читайте этот ответ.
Я спросил в #machomebrew и узнал, что вы можете переключаться между версиями с помощью переключателя brew.
$ brew switch libfoo mycopy
чтобы получить версию mycopy libfoo.
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
Если вы установили, например, 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
Если ответ @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)