¿Cómo forzo a homebrew a actualizar el software instalado?

13

Tengo instalado pianobar y estoy tratando de actualizarlo usando brew update pianobar. También lo intenté brew update pianobar --forcepero eso no tuvo ningún efecto. Dice que tengo cambios locales, pero no estoy seguro de cómo decirle que simplemente los sobrescriba.

From http://github.com/mxcl/homebrew
 * branch            master     -> FETCH_HEAD
error: Your local changes to the following files would be overwritten by merge:
    Library/Formula/android-ndk.rb
    Library/Formula/android-sdk.rb
    Library/Formula/center-im.rb
    Library/Formula/putty.rb
    Library/Formula/python.rb
    ... (lines removed) ...
    Library/Formula/upx.rb
    Library/Formula/vimpager.rb
    Library/Homebrew/cmd/doctor.rb
Please, commit your changes or stash them before you can merge.
error: The following untracked working tree files would be overwritten by merge:
    Library/Formula/tth.rb
Please move or remove them before you can merge.
Updating 45bc7ad..36f4400
Aborting
Error: Failed while executing git pull http://github.com/mxcl/homebrew.git master
cwd
fuente
2
Creo que tienes que usar upgrade. updatees para actualizar las fórmulas.
Felix

Respuestas:

14

No sé por qué sucede esto con Homebrew cuando no haces nada para molestarlo, pero así es como lo solucioné:

  1. Cambie a su directorio de bodegas Homebrew cd `brew --cellar`
  2. Restablecer repositorio git git reset --hard HEAD
  3. ¡Actualiza pianobar, por fin! brew upgrade pianobar

Para su información, brew updateactualizará Homebrew a la última versión, por lo que es posible que desee hacerlo antes del paso 3.

swrobel
fuente
hizo 1-3 y funcionó como se esperaba, ¡gracias! pero cuando intento ejecutar pianobar dice Login... Error: Protocol incompatible. Please upgrade libpiano.: ¿alguna idea? también, cuando lo intenté, brew updaterecibí un error: los siguientes archivos de árbol de trabajo no rastreados se sobrescribirán con merge: Library / Formula / tth.rb. Error: Error al ejecutar git pull github.com/mxcl/homebrew.git master - lo siento, soy nuevo en homebrew y realmente no estoy seguro de lo que estoy haciendo.
cwd
1
¡Ah, caramba, haces la vida tan divertida! No cd `brew --prefix`luego git clean -fvuelva a intentarlo brew update. En cuanto al problema de Pianobar, lo intentaré a brew upgrade libpianocontinuación, pero no lo estoy usando, así que no estoy seguro.
swrobel
funcionó, muchas gracias por toda la ayuda! aparentemente la versión de libpiano que está disponible todavía no es lo suficientemente nueva, ya que todavía recibo el error a pesar de que dice que todo está actualizado.
cwd
Encantado de ayudar. Acabo de instalar pianobar y funciona para mí. Sé que Pandora ha actualizado su protocolo recientemente, pero parece que la versión Pianobar de Homebrew está actualizada. El mío es 2011.09.22, ¿cuál es el tuyo? Debería aparecer en la primera línea después de ejecutar pianobar.
swrobel
2

Como dijo @Felix, upgradeno lo uses update.

Si el problema proviene de su sucio árbol de git y solo quiere olvidarse de sus modificaciones, escriba git reset --hard HEADantes de actualizar.

Simón
fuente
no ocurre nada cuando intento que ... brew upgrade pianobar -vda Kernel.exit
cwd
¿Qué obtienes cuando corres type -a brew?
Robert S Ciaccio
brew is / usr / local / bin / brew
cwd
0

Esta es una respuesta general, no específica para su pianobarproblema.

Para actualizar el software instalado, primero actualice brew: brew update

y luego actualice el software instalado: brew upgrade

Para evitar que se actualice algún software, haga brew pin YOUR-PACKAGE-HERE

lenooh
fuente