Как заставить homebrew обновить установленное программное обеспечение?

13

У меня установлен Pianobar, и я пытаюсь обновить его с помощью brew update pianobar. Я тоже пытался, brew update pianobar --forceно это не имело никакого эффекта. Он говорит, что у меня есть локальные изменения, но я не уверен, как сказать, чтобы просто перезаписать их.

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
Я думаю, что вы должны использовать upgrade. updateдля обновления формул.
Феликс

Ответы:

14

Я не знаю, почему это происходит с Homebrew, когда вы ничего не делаете с этим, но вот как я это исправил:

  1. Перейдите в каталог домашних погребов cd `brew --cellar`
  2. Сбросить git-репозиторий git reset --hard HEAD
  3. Обновите пианобар, наконец-то! brew upgrade pianobar

К вашему сведению, brew updateвы обновите Homebrew до последней версии, так что вы можете сделать это до шага 3.

swrobel
источник
сделал 1-3 и все заработало как положено, спасибо! но потом, когда я пытаюсь запустить пианобар, он говорит Login... Error: Protocol incompatible. Please upgrade libpiano.- есть мысли? также, когда я пытался, brew updateя получаю ошибку: следующие неотслеживаемые файлы рабочего дерева будут перезаписаны слиянием: Library / Formula / tth.rb. Ошибка: не удалось выполнить git pull github.com/mxcl/homebrew.git master - извините, я новичок в homebrew и действительно не уверен, что делаю.
cwd
1
Ах, дерьмо, ты делаешь жизнь такой веселой! Есть cd `brew --prefix`то git clean -fпопробуйте brew update. Что касается вопроса о Pianobar, я бы попробовал brew upgrade libpianoследующий, но я им не пользуюсь, поэтому я не уверен.
swrobel
это сработало, большое спасибо за помощь! по-видимому, версия libpiano, которая вышла, еще недостаточно нова, поскольку я все еще получаю сообщение об ошибке, хотя в ней говорится, что все обновлено.
cwd
Рад помочь. Я только что установил пианобар, и он работает для меня. Я знаю, что Pandora недавно обновила свой протокол, но кажется, что версия Homebrew для Pianobar актуальна. Моя 2011.09.22, какая твоя? Он должен отображаться в первой строке после запуска pianobar.
swrobel
2

Как сказал @Felix, upgradeне используйте update.

Если проблема связана с вашим грязным деревом мерзавцев, и вы просто хотите забыть о своих изменениях, напечатайте git reset --hard HEADперед обновлением.

Саймон
источник
ничего не происходит, когда я пытаюсь это ... brew upgrade pianobar -vдает Kernel.exit
cwd
что ты получаешь, когда бежишь type -a brew?
Роберт С. Чаччо
brew is / usr / local / bin / brew
cwd
0

Это общий ответ, не относящийся к вашей pianobarпроблеме.

Чтобы обновить установленное программное обеспечение, сначала обновите brew: brew update

а затем обновите установленное программное обеспечение: brew upgrade

Чтобы предотвратить обновление программного обеспечения, выполните brew pin YOUR-PACKAGE-HERE

lenooh
источник