Como forço o homebrew a atualizar o software instalado?

13

Eu tenho o pianobar instalado e estou tentando atualizá-lo usando brew update pianobar. Eu também tentei, brew update pianobar --forcemas isso não teve nenhum efeito. Ele diz que tenho alterações locais, mas não sei como dizer para substituí-las.

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
fonte
2
Eu acho que você tem que usar upgrade. updateé para atualizar as fórmulas.
Felix

Respostas:

14

Não sei por que isso acontece com o Homebrew quando você não faz nada para mexer com ele, mas eis como eu o corrigi:

  1. Mude para o diretório da sua adega Homebrew cd `brew --cellar`
  2. Redefinir repositório git git reset --hard HEAD
  3. Atualize o pianobar, finalmente! brew upgrade pianobar

FYI, brew updateatualizará o Homebrew para a versão mais recente, portanto, você pode fazer isso antes da etapa 3.

swrobel
fonte
fez 1-3 e funcionou como esperado, obrigado! mas então quando eu tento executar o pianobar diz Login... Error: Protocol incompatible. Please upgrade libpiano.- alguma opinião? também quando tentei brew updateobter erro: Os seguintes arquivos da árvore de trabalho não rastreados seriam substituídos por mesclagem: Library / Formula / tth.rb. Erro: falha ao executar o git pull github.com/mxcl/homebrew.git master - desculpe, eu sou novo no homebrew e não tenho muita certeza do que estou fazendo.
Cwd
1
Ah, Deus, você torna a vida tão divertida! Você cd `brew --prefix`, em seguida, git clean -ftente brew update. Quanto à questão de Pianobar, eu tentaria a brew upgrade libpianoseguir, mas não a estou usando, por isso não tenho certeza.
swrobel
que funcionou, muito obrigado por toda a ajuda! aparentemente a versão do libpiano lançada ainda não é nova o suficiente, já que eu ainda estou recebendo o erro, embora ele diga que tudo está atualizado.
Cwd
Feliz em ajudar. Acabei de instalar o pianobar e funciona para mim. Eu sei que Pandora atualizou seu protocolo recentemente, mas parece que a versão Pianobar do Homebrew está atualizada. O meu é o 2011.09.22que é seu? Ele deve aparecer na primeira linha depois de executar o pianobar.
swrobel
2

Como o @Felix disse, upgradenão use update.

Se o problema vier da sua árvore git suja e você quiser apenas esquecer suas modificações, digite git reset --hard HEADantes de atualizar.

Simon
fonte
nada acontece quando eu tento que ... brew upgrade pianobar -vdá Kernel.exit
cwd
o que você ganha quando corre type -a brew?
Robert S Ciaccio 23/09
brew é / usr / local / bin / brew
cwd
0

Esta é uma resposta geral, não específica para o seu pianobarproblema.

Para atualizar o software instalado, primeiro atualize o brew: brew update

e, em seguida, atualize o software instalado: brew upgrade

Para impedir que alguns softwares sejam atualizados, faça brew pin YOUR-PACKAGE-HERE

lenooh
fonte