Comment mettre à jour une formule avec Homebrew?

165

Comment mettre à jour une formule?

J'ai couru brew update. Puis, en cours d'exécution brew outdated, sort:

mongodb (1.4.3-x86_64 < 1.6.5-x86_64)

Ainsi, mongodbest obsolète.

Comment le mettre à jour? Dois-je simplement désinstaller puis installer?

ma11hew28
la source

Réponses:

243

Je pense que la bonne façon de faire est

mise à niveau de brassage mongodb

Il améliorera la formule mongodb. Si vous souhaitez mettre à niveau toutes les formules obsolètes, simplement

mise à niveau de la bière

yc
la source
C'est en effet la bonne manière maintenant . Les anciennes méthodes fonctionneront toujours si vous utilisez append --force.
mxcl
Quand j'exécute "brew upgrade <packagename>", il met à jour en fait tous les paquets obsolètes, prenant des heures au lieu de secondes. C'est une très mauvaise conception. La bonne façon de "mettre à jour JUSTE un seul paquet" est "brew install <nom du paquet>", qui est encore une fois une conception déroutante.
xuancong84 le
58

Vous pouvez mettre à jour tous les packages obsolètes comme ceci:

brew install `brew outdated`

ou

brew outdated | xargs brew install

ou

brew upgrade

Ceci provient du site de brassage.

pour la mise à niveau de la formule individuelle:

brew install formula-name && brew cleanup formula-name
user689741
la source
Que fait le nettoyage?
sites
3
Je pense que je peux maintenant taper brew upgrade outdatedet sauter toutes les conneries complexes.
Warren P
4
ou tout simplementbrew upgrade
CharlieMezak
20

Vous devrez d'abord mettre à jour les formules locales en faisant

brew update

puis mettez à jour le package en faisant

brew upgrade formula-name

Un exemple serait si je voulais mettre à niveau mongodb , je ferais quelque chose comme ça, en supposant que mongodb était déjà installé:

brew update && brew upgrade mongodb && brew cleanup mongodb
Joseph
la source
11

Eh bien, je viens de le faire

brew install mongodb

et a suivi les instructions qui ont été envoyées à l ' STDOUTaprès l'installation, et cela semble avoir très bien fonctionné. Je suppose que cela fonctionne un peu comme make installet écrase (met à niveau) une installation précédente.

ma11hew28
la source
9
Brew installe mongodb dans $HOMEBREW_PREFIX/Cellar/mongodb/<version>/, donc vous avez probablement les deux versions installées. Il établit alors un lien symbolique vers la dernière version $HOMEBREW_PREFIX/bin, etc. L'exécution brew cleanup mongodbsupprimera l'ancienne version.
mipadi
2

Vous ne pouvez pas utiliser l'installation de brew pour mettre à niveau une formule installée. Si vous souhaitez mettre à niveau toutes les formules obsolètes, vous pouvez utiliser la commande ci-dessous.

brew outdated | xargs brew upgrade
UnchartedWorks
la source
Vous devez mieux expliquer votre solution, pour être utile aux autres utilisateurs SO. Publier uniquement du code n'est pas une bonne pratique ici.
Massimiliano Kraus
0

Je préfère mettre à niveau toutes les formules homebrew et les formules homebrew cask .

J'ai ajouté une fonction Bourne shell à mon environnement pour celui-ci (je charge un .bashrc)

function updatebrew() {
set -x;
brew update;
brew cleanup;
brew cask upgrade --greedy
)
}
  • set -x pour la transparence: pour que le terminal affiche tout ce que Homebrew fait en arrière-plan.
  • brew update pour mettre à jour les formules homebrew
  • brew cleanup pour supprimer tout changement restant après les installations
  • brew cask upgrade --greedyinstallera tous les fûts; ceux avec des informations de version et ceux sans
Jonathan Komar
la source