Как я могу перейти на более старую версию Homebrew? - PullRequest
0 голосов
/ 27 мая 2020

В настоящее время у меня последняя версия 2.2.17, я хочу перейти на версию 2.2.12.

Brew не имеет опции downgrade, только upgrade. Это процесс удаления brew и повторной установки?

1 Ответ

0 голосов
/ 30 мая 2020

Я предполагаю, что вы используете macOS и использовали обычный способ установки (через сценарий установки).

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

Если да, то взгляните на сценарий установки brew (у него есть собственное репо).
Он загружает фактическое репо Homebrew в / usr / local / Homebrew .

...
HOMEBREW_PREFIX="/usr/local"
HOMEBREW_REPOSITORY="/usr/local/Homebrew"
...

BREW_REPO="https://github.com/Homebrew/brew"
...

ohai "Downloading and installing Homebrew..."
(
  cd "${HOMEBREW_REPOSITORY}" >/dev/null || return

  # "git remote add" will fail if the remote is defined in the global config
  execute "git" "config" "remote.origin.url" "${BREW_REPO}"
  execute "git" "config" "remote.origin.fetch" "+refs/heads/*:refs/remotes/origin/*"
  ...

  execute "ln" "-sf" "${HOMEBREW_REPOSITORY}/bin/brew" "${HOMEBREW_PREFIX}/bin/brew"
  ...
}
...
==> This script will install:
/usr/local/bin/brew
/usr/local/share/doc/homebrew
/usr/local/share/man/man1/brew.1
/usr/local/share/zsh/site-functions/_brew
/usr/local/etc/bash_completion.d/brew
/usr/local/Homebrew
...

Он устанавливает последнюю копию репо. Таким образом, ответ на вопрос « Это процесс удаления brew и его повторной установки? » будет «НЕТ».

Вместо этого установите его в обычном режиме, а затем вы можете go перейдите к / usr / local / Homebrew и проверьте версию, которую вы хотите.

gino@~$ cd /usr/local/Homebrew

gino@Homebrew$ brew --version
Homebrew 2.3.0
Homebrew/homebrew-core (git revision d41d92; last commit 2020-05-29)

gino@Homebrew$ git fetch --tags
gino@Homebrew$ git checkout 2.2.12
Note: switching to '2.2.12'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c <new-branch-name>

Or undo this operation with:

  git switch -

Turn off this advice by setting config variable advice.detachedHead to false

HEAD is now at 2ae26808a Merge pull request #7301 from Bo98/cmake-sdkroot

gino@Homebrew$ brew --version
Homebrew 2.2.12

gino@Homebrew$ cd /usr/local/bin
gino@bin$ ./brew --version
Homebrew 2.2.12
Homebrew/homebrew-core (git revision d41d92; last commit 2020-05-29)

Я рекомендую сделать brew doctor после, просто чтобы убедиться, что все в порядке.

Тогда, к сожалению, Homebrew всегда автоматически обновляется каждый раз, когда вы что-то устанавливаете. Таким образом, он всегда будет обновлять репо по адресу / usr / local / Homebrew до последней версии. Вы можете отключить это, экспортировав HOMEBREW_NO_AUTO_UPDATE, как указано здесь https://github.com/Homebrew/brew/issues/1670.

gino@~$ export HOMEBREW_NO_AUTO_UPDATE=1
gino@~$ brew install python@3.8 

Вам нужно будет создать псевдоним или экспортировать этот env var в ваш bash_profile (или что-то еще эквивалент для используемого вами терминала).

...