Как я могу заварить ссылку конкретной версии?


158

У меня есть несколько бочонков того же пакета в /usr/local/Cellar/libfooкак /usr/local/Cellar/libfoo/1.0.1, /usr/local/Cellar/libfoo/HEADи/usr/local/Cellar/libfoo/mycopy

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

Ответы:


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
Я использовал метод обновления 15.10.2014 и мне нужно было добавить /usr/local/Cellar/mysql55/5.5.40/bin к моему пути. Большинство вещей Homebrew имеют символическую ссылку в / 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`
Юрай Мартинка

Есть ли способ выяснить, какие версии доступны без versionsили просто гадать и проверять switch?
Кайл Стрэнд

1
версии устарели, поэтому я думаю, что остается только найти старую формулу и установить ее по прямому URL-адресу
SimonW

12

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

$ brew switch libfoo mycopy 

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


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 с версией: 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)

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.