Несколько бок о бок версий с Homebrew?
Возможно ли установить несколько версий бок о бок с Homebrew?
Я нахожусь в ситуации, требующей sbt-0.7.x, sbt-0.10.x и sbt-0.11.0. В настоящий момент я установил как sbt-0.7.7, так и sbt-0.10.1 вручную, чтобы обойти проблему (с sbt-0.11.0, являющейся последним "sbt" из Homebrew).
Ответы
Ответ 1
Да. Когда вы устанавливаете новую версию пакета, она сохраняет старую. Символы в /usr/local/bin
или где бы то ни было указывает на последнюю версию, но вы все равно можете вызывать двоичные файлы (или ссылку на библиотеки) в более старой версии.
brew list
, чтобы узнать, что установлено. Вы можете посмотреть в каталогах пакетов, чтобы увидеть все версии; или вызовите brew list --versions
, чтобы увидеть все пакеты и все версии.
Ответ 2
Чтобы легко переключаться между версиями формул, вы можете использовать:
brew switch <formula> <version>
Например:
brew switch gradle 3.2.1
Чтобы указать, какие версии, которые вы установили, попробуйте:
brew list --versions
или
brew list <formula> --versions
Если вы хотите избавиться от более старых версий, просто используйте:
brew cleanup
Ответ 3
Начиная с Homebrew 2.0.0, он автоматически удаляет старые пакеты при вызове brew upgrade
. (https://brew.sh/2019/02/02/homebrew-2.0.0/). Чтобы отказаться от этого поведения, установите переменную среды: export HOMEBREW_NO_INSTALL_CLEANUP=1