¿Cómo actualizo una fórmula con Homebrew?

164

¿Cómo actualizo una fórmula?

Me encontré brew update. Luego, corriendo brew outdated, salidas:

mongodb (1.4.3-x86_64 < 1.6.5-x86_64)

Por lo tanto, mongodbestá desactualizado.

¿Cómo lo actualizo? ¿Acabo de desinstalar y luego instalar?

ma11hew28
fuente

Respuestas:

242

Creo que la forma correcta de hacerlo es

brew upgrade mongodb

Se actualizará la fórmula mongodb. Si desea actualizar todas las fórmulas desactualizadas, simplemente

actualizar cerveza

yc
fuente
Esta es de hecho la forma correcta ahora . Las viejas formas seguirán funcionando si se usa append --force.
mxcl
Cuando ejecuto "brew upgrade <packagename>", en realidad actualiza todos los paquetes obsoletos, lo que lleva horas en lugar de segundos. Ese es un diseño muy malo. La forma correcta de "SOLO actualizar un solo paquete" es "brew install <packagename>", que nuevamente es un diseño confuso.
xuancong84
58

Puede actualizar todos los paquetes obsoletos así:

brew install `brew outdated`

o

brew outdated | xargs brew install

o

brew upgrade

Esto es del sitio de preparación ..

para actualizar la fórmula individual:

brew install formula-name && brew cleanup formula-name
usuario689741
fuente
¿Qué hace la limpieza?
sitios
3
Creo que ahora solo puedo escribir brew upgrade outdatedy omitir toda la basura compleja.
Warren P
44
o simplementebrew upgrade
CharlieMezak
20

Primero deberá actualizar las fórmulas locales haciendo

brew update

y luego actualice el paquete haciendo

brew upgrade formula-name

Un ejemplo sería si quisiera actualizar mongodb , haría algo como esto, suponiendo que mongodb ya estuviera instalado:

brew update && brew upgrade mongodb && brew cleanup mongodb
Joseph
fuente
11

Bueno, acabo de hacer

brew install mongodb

y seguí las instrucciones que se enviaron al STDOUTfinal de la instalación, y parece haber funcionado bien. Supongo que funciona como make instally sobrescribe (actualizaciones) una instalación anterior.

ma11hew28
fuente
9
Brew instala mongodb $HOMEBREW_PREFIX/Cellar/mongodb/<version>/, por lo que lo más probable es que tenga ambas versiones instaladas. Luego enlaza simbólicamente la última versión $HOMEBREW_PREFIX/bin, etc. La ejecución brew cleanup mongodbeliminará la versión anterior.
mipadi
2

No puede usar brew install para actualizar una fórmula instalada. Si desea actualizar todas las fórmulas desactualizadas, puede usar el siguiente comando.

brew outdated | xargs brew upgrade
UnchartedWorks
fuente
Explica mejor tu solución, para ser útil a los demás usuarios de SO. Publicar solo código no es una práctica recomendada aquí.
Massimiliano Kraus
0

Prefiero actualizar todas las fórmulas de homebrew y las fórmulas de homebrew cask .

Agregué una función de shell Bourne a mi entorno para este (cargo un .bashrc)

function updatebrew() {
set -x;
brew update;
brew cleanup;
brew cask upgrade --greedy
)
}
  • set -x para transparencia: para que el terminal muestre lo que Homebrew está haciendo en segundo plano.
  • brew update actualizar fórmulas homebrew
  • brew cleanup para eliminar cualquier cambio que quede después de las instalaciones
  • brew cask upgrade --greedyinstalará todos los barriles; tanto aquellos con información de versiones como aquellos sin
Jonathan Komar
fuente