Настройте Homebrew, чтобы не удалять старые версии - PullRequest
0 голосов
/ 19 мая 2019

Когда я устанавливаю пакет через homebrew, он удаляет старые версии.

$ brew upgrade terraform
?  /usr/local/Cellar/terraform/0.11.14: 6 files, 42.4MB
Removing: /usr/local/Cellar/terraform/0.11.13... (6 files, 120.6MB)
Removing: /Users/vikas/Library/Caches/Homebrew/terraform--0.11.13.mojave.bottle.tar.gz... (25.4MB)

Как отключить этот параметр, чтобы я мог переключиться на более старые версии.

$ brew switch [formula] [version]

Ответы [ 2 ]

3 голосов
/ 19 мая 2019

Этого поведения можно избежать, установив переменную export HOMEBREW_NO_INSTALL_CLEANUP=TRUE в ~/.bashrc или ~/.zshrc (или специфично для вашей оболочки).

После этого вы можете проверить, правильно ли оно было применено:

$ brew config | grep HOMEBREW_NO_INSTALL_CLEANUP
HOMEBREW_NO_INSTALL_CLEANUP: TRUE
$

Это было введено в v1.9.0 и также задокументировано в man brew, но его легко пропустить:)

Unless HOMEBREW_NO_INSTALL_CLEANUP is set, brew cleanup will be run for the installed formulae or, every 30 days, for all formulae

Ссылки: - https://github.com/Homebrew/brew/issues/5654

0 голосов
/ 19 мая 2019

Это выглядит странно, потому что обычно homebrew на самом деле не удаляет старые версии сразу, а сохраняет их, чтобы вы могли вернуться позже. За исключением, может быть, вы делали brew cleanup.

Если вы не удаляли старые версии, у вас есть шанс, что некоторые старые версии ваших программ будут там неактивны. Вы можете просто повторно активировать эти предыдущие версии, используя brew switch для приготовления более старых версий. например,

$ brew info mysql (to get info about the installed versions)
$ brew switch mysql 5.7.21 (to switch to a stable version)

В качестве альтернативы вы используете силу следующим образом: например,

brew link --force mysql@5.7

ЗА ИСКЛЮЧЕНИЕМ вы используете 2.0, затем ДА, это происходит с 2.0.0., Автоматическая очистка по умолчанию. Используйте man brew и посмотрите, как отказаться от этого поведения.

Оформить заказ brew --force в man brew

...