Как мне обновить формулу с помощью Homebrew?

165

Как мне обновить формулу?

Я побежал brew update. Затем, работает brew outdated, выводит:

mongodb (1.4.3-x86_64 < 1.6.5-x86_64)

Таким образом, mongodbустарел.

Как мне его обновить? Должен ли я просто удалить, а затем установить?

ma11hew28
источник

Ответы:

243

Я думаю, что правильный способ сделать это

заваривать апгрейд mongodb

Это улучшит формулу mongodb. Если вы хотите обновить все устаревшие формулы, просто

заваривать апгрейд

ус
источник
Это действительно правильный путь сейчас . Старые способы все еще будут работать, если использовать append --force.
mxcl
Когда я запускаю «brew upgrade <packagename>», он фактически обновляет все устаревшие пакеты, занимая часы вместо секунд. Это очень плохой дизайн. Правильный способ «ПРОСТО обновить один пакет» - это «brew install <packagename>», что опять-таки сбивает с толку.
xuancong84
58

Вы можете обновить все устаревшие пакеты, например, так:

brew install `brew outdated`

или

brew outdated | xargs brew install

или

brew upgrade

Это с сайта Brew ..

для уточнения индивидуальной формулы:

brew install formula-name && brew cleanup formula-name
user689741
источник
Что делает уборка?
сайты
3
Думаю, теперь можно просто набрать brew upgrade outdatedи пропустить всю сложную хрень.
Уоррен П
4
или простоbrew upgrade
ЧарлиМезак
20

Сначала вам нужно обновить местные формулы, выполнив

brew update

а затем обновить пакет, выполнив

brew upgrade formula-name

Например, если бы я хотел обновить mongodb , я бы сделал что-то вроде этого, предполагая, что mongodb уже установлен:

brew update && brew upgrade mongodb && brew cleanup mongodb
Джозеф
источник
11

Ну, я только что сделал

brew install mongodb

и следовал инструкциям, которые были выведены в STDOUTпосле того, как он закончил установку, и это, кажется, работало просто отлично. Я предполагаю, что это работает так же, как make installи перезаписывает (обновляет) предыдущую установку.

ma11hew28
источник
9
Brew устанавливает mongodb $HOMEBREW_PREFIX/Cellar/mongodb/<version>/, поэтому, скорее всего, у вас установлены обе версии. Затем он вставляет ссылку на последнюю версию $HOMEBREW_PREFIX/binи т. Д. При запуске brew cleanup mongodbудаляется старая версия.
Mipadi
2

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

brew outdated | xargs brew upgrade
UnchartedWorks
источник
Вы лучше объясните свое решение, чтобы быть полезным для других пользователей SO. Размещение только кода не является лучшей практикой здесь.
Массимилиано Краус
0

Я предпочитаю модернизировать все формулы доморощенного и домашнего бочек .

Я добавил в эту среду функцию оболочки Bourne (я загружаю .bashrc)

function updatebrew() {
set -x;
brew update;
brew cleanup;
brew cask upgrade --greedy
)
}
  • set -x для прозрачности: чтобы терминал выводил все, что делает Homebrew, в фоновом режиме.
  • brew update обновить доморощенные формулы
  • brew cleanup удалить любые изменения, оставшиеся после установки
  • brew cask upgrade --greedyустановит все бочки; как с информацией о версиях, так и без
Джонатан Комар
источник