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

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.


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.


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

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.