Як я можу заварити посилання на певну версію?


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

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

brew switch mysql 0

Оновлення (15.10.2014):

brew versionsКоманда була видалена з заварювати, але, якщо ви хочете використовувати цю команду першого запуску 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 to / usr / local / Cellar ..., але оновлена ​​установка не додає цього символьного посилання автоматично.
Повноваження

1
Вам все-таки потрібно пов’язати встановлену версію та перезаписати своє поточне посилання за допомогою: варити посилання - 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

Чи є спосіб зрозуміти, які версії доступні без versionsабо просто здогадуватися і перевіряти switch?
Кайл Странд

1
версії застаріли, тому я думаю, що єдиний залишився спосіб - знайти стару формулу та встановити її з прямої URL-адреси
SimonW

12

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

$ brew switch libfoo 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/звільняє та завантажуйте 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.