Как обновить сам Homebrew (а не установленные им программы/формулы) на macOS?

Я установил доморощенный задолго до того, как ОС несколько раз обновлялась до 10.12.3. Теперь, когда

$ brew --version
Homebrew 0.9.9 (git revision 080c; last commit 2016-08-11)
Homebrew/homebrew-core (git revision b163b; last commit 2016-08-10)

Как правильно перейти на более новую версию, скажем, 1.1 ?

$ brew upgrade 

не работал.

Ответы (5)

Чтобы обновить самого доморощенного, используйте:

brew update

Чтобы обновить все пакеты, установленные с помощью homebrew, вам нужно использовать brew upgrade. Вы можете проверить этот FAQ на веб-сайте brew для получения более подробной информации.

Правильный способ решить эту проблему - ввести:

$ cd "$(brew --repo)" && git fetch && git reset --hard origin/master && brew update

Найдено по адресу http://discourse.brew.sh/t/how-to-upgrade-brew-stuck-on-0-9-9/33 .

По привычке я запускаю эту команду раз в неделю:

brew update && brew upgrade && brew cleanup

Он обновляет brewсебя, бочки и связанные пакеты, а затем очищает ненужные файлы старого пакета. Вот результат после двойного запуска:

Already up-to-date

Если вы хотите обновить Homebrew, используйте brew update . После запуска brew update у вас могут быть установлены устаревшие формулы, поэтому обновление brew необходимо.

$ git -C
Берет существующий объект фиксации и повторно использует сообщения журнала и информацию об авторстве (включая метку времени) при создании фиксации.

/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core
Это путь к папке homebrew-core на компьютере.

fetch
Загружает объекты и ссылки из другого репозитория.

--unshallow
Это опция git fetch. Если исходный репозиторий завершен, он преобразует неглубокий репозиторий в полный, снимая все ограничения, накладываемые неглубокими репозиториями.

brew update
Обновляет Homebrew

Используйте эти команды

$ git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core fetch --unshallow  
$ brew update
Я думаю, было бы полезно некоторое объяснение того, что делают эти команды.