Як змусити домашню мову оновити встановлене програмне забезпечення?


13

У мене встановлено піанобар і я намагаюся оновити його за допомогою 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. Перейдіть до каталогу підвалу Homebrew cd `brew --cellar`
  2. Скинути сховище git git reset --hard HEAD
  3. Оновіть піанобар, нарешті! brew upgrade pianobar

FYI brew updateоновить Homebrew до останньої версії, тому, можливо, ви захочете зробити це перед кроком 3.


зробив 1-3, і це спрацювало як очікувалося, дякую! але тоді, коли я спробую запустити піанобар, він говорить Login... Error: Protocol incompatible. Please upgrade libpiano.- якісь думки? також коли я спробував brew updateотримати помилку: Наступні непоправлені робочі файли дерева будуть перезаписані злиттям: Бібліотека / Формула / tth.rb. Помилка: не вдалося виконати git pull github.com/mxcl/homebrew.git master - вибачте, що я новачок у домашньої мови та я дійсно не впевнений, що я роблю.
cwd

1
Ах, гіт, ти робиш життя таким веселим !. Є cd `brew --prefix`то git clean -fспробуйте brew update. Що стосується випуску Pianobar, я б спробував brew upgrade libpianoнаступне, але я його не використовую, тому я не впевнений.
swrobel

що спрацювало, велике спасибі за всю допомогу! Мабуть, версія libpiano, яка вийшла, ще не є достатньо новою, хоча я все ще отримую помилку, хоча вона каже, що все актуально.
cwd

Радий допомогти. Я щойно встановив піанінобар, і він працює на мене. Я знаю, що Pandora нещодавно оновила їхній протокол, але, схоже, версія Pianobar Homebrew актуальна. Моє 2011.09.22, що твоє? Він повинен відображатися на першому рядку після запуску піанобар.
swrobel

2

Як сказав @Felix, upgradeне використовуйте update.

Якщо проблема пов’язана з вашим брудним деревом git, і ви просто хочете забути про свої зміни, введіть git reset --hard HEADперед оновленням.


нічого не буває, коли я спробую це ... brew upgrade pianobar -vдає Kernel.exit
cwd

що ви отримуєте, коли біжите type -a brew?
Robert S Ciaccio

brew is / usr / local / bin / brew
cwd

0

Це загальна відповідь, не конкретна для вашої pianobarпроблеми.

Щоб оновити встановлене програмне забезпечення, спочатку приготуйте оновлення: brew update

а потім оновіть встановлене програмне забезпечення: brew upgrade

Щоб запобігти оновленню деяких програм, виконайте це brew pin YOUR-PACKAGE-HERE

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.