Comment forcer homebrew à mettre à jour le logiciel installé?

13

J'ai installé pianobar et j'essaye de le mettre à jour en utilisant brew update pianobar. J'ai également essayé brew update pianobar --forcemais cela n'a eu aucun effet. Il indique que j'ai des modifications locales, mais je ne sais pas comment lui dire de simplement les remplacer.

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
la source
2
Je pense que vous devez utiliser upgrade. updatesert à mettre à jour les formules.
Felix

Réponses:

14

Je ne sais pas pourquoi cela se produit avec Homebrew lorsque vous ne faites rien pour le gâcher, mais voici comment je l'ai corrigé:

  1. Accédez à votre répertoire de cave Homebrew cd `brew --cellar`
  2. Réinitialiser le référentiel git git reset --hard HEAD
  3. Améliorez enfin le pianobar! brew upgrade pianobar

Pour info, brew updateHomebrew mettra à jour la dernière version, vous pouvez donc le faire avant l'étape 3.

swrobel
la source
a fait 1-3 et cela a fonctionné comme prévu, merci! mais quand j'essaye de lancer le pianobar, ça dit Login... Error: Protocol incompatible. Please upgrade libpiano.- des pensées? aussi lorsque j'ai essayé, brew updatej'obtiens une erreur: les fichiers d'arborescence de travail non suivis suivants seraient remplacés par la fusion: Library / Formula / tth.rb. Erreur: échec lors de l'exécution de git pull github.com/mxcl/homebrew.git master - désolé, je suis nouveau sur homebrew et je ne suis vraiment pas sûr de ce que je fais.
cwd
1
Ah, merde, vous rendez la vie si amusante!. Ne cd `brew --prefix`puis git clean -fessayez brew update. Quant au problème de Pianobar, j'essaierais brew upgrade libpianoensuite, mais je ne l'utilise pas, donc je ne suis pas certain.
swrobel
cela a fonctionné, merci beaucoup pour toute l'aide! apparemment, la version de libpiano qui est sortie n'est pas encore assez nouvelle, car je reçois toujours l'erreur même si elle dit que tout est à jour.
cwd
Heureux de vous aider. Je viens d'installer pianobar et cela fonctionne pour moi. Je sais que Pandora a récemment mis à jour son protocole, mais il semble que la version Pianobar de Homebrew soit à jour. Le mien est 2011.09.22, quel est le vôtre? Il devrait apparaître sur la première ligne après avoir exécuté pianobar.
swrobel
2

Comme l'a dit @Felix, n'utilisez upgradepas update.

Si le problème vient de votre arbre git sale et que vous voulez juste oublier vos modifications, tapez git reset --hard HEADavant la mise à niveau.

Simon
la source
rien ne se passe quand j'essaye ça ... brew upgrade pianobar -vdonne Kernel.exit
cwd
qu'obtenez-vous lorsque vous courez type -a brew?
Robert S Ciaccio
brew is / usr / local / bin / brew
cwd
0

Il s'agit d'une réponse générale, non spécifique à votre pianobarproblème.

Pour mettre à jour le logiciel installé, commencez par mettre à jour brew: brew update

puis mettez à niveau le logiciel installé: brew upgrade

Pour empêcher la mise à niveau de certains logiciels, procédez comme suit: brew pin YOUR-PACKAGE-HERE

lenooh
la source