Bagaimana cara memaksa homebrew memperbarui perangkat lunak yang diinstal?

13

Saya telah menginstal pianobar dan saya mencoba memperbaruinya dengan menggunakan brew update pianobar. Saya juga mencoba brew update pianobar --forcetetapi itu tidak berpengaruh. Dikatakan bahwa saya memiliki perubahan lokal, tetapi saya tidak yakin bagaimana mengatakannya hanya menimpanya.

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
sumber
2
Saya pikir Anda harus menggunakan upgrade. updateadalah untuk memperbarui formula.
Felix

Jawaban:

14

Saya tidak tahu mengapa ini terjadi pada Homebrew ketika Anda tidak melakukan apa-apa untuk mengacaukannya, tapi inilah cara saya memperbaikinya:

  1. Ubah ke direktori gudang Homebrew Anda cd `brew --cellar`
  2. Setel ulang repositori git git reset --hard HEAD
  3. Tingkatkan pianobar, akhirnya! brew upgrade pianobar

FYI, brew updateakan memperbarui Homebrew ke versi terbaru, jadi Anda mungkin ingin melakukannya sebelum langkah 3.

swrobel
sumber
melakukan 1-3 dan itu berfungsi seperti yang diharapkan, terima kasih! tapi kemudian ketika saya mencoba dan menjalankan pianobar dikatakan Login... Error: Protocol incompatible. Please upgrade libpiano.- ada pemikiran? juga ketika saya mencoba brew updatesaya mendapatkan kesalahan: File pohon yang tidak terlacak berikut akan ditimpa oleh gabungan: Library / Formula / tth.rb. Kesalahan: Gagal saat menjalankan git pull github.com/mxcl/homebrew.git master - maaf saya baru di homebrew dan saya benar-benar tidak yakin apa yang saya lakukan.
cwd
1
Ah, git, kamu membuat hidup jadi menyenangkan !. Apakah cd `brew --prefix`kemudian git clean -fkemudian mencoba brew update. Adapun masalah Pianobar, saya akan coba brew upgrade libpianoberikutnya, tapi saya tidak menggunakannya, jadi saya tidak yakin.
swrobel
itu berhasil, terima kasih banyak atas semua bantuannya! rupanya versi libpiano yang keluar belum cukup baru karena saya masih mendapatkan kesalahan meskipun dikatakan semuanya up to date.
cwd
Senang untuk membantu. Saya baru saja menginstal pianobar dan berfungsi untuk saya. Saya tahu Pandora telah memperbarui protokol mereka baru-baru ini, tetapi tampaknya versi Pianobar Homebrew sudah terbaru. Milikku 2011.09.22, milikmu apa? Seharusnya ditampilkan di baris pertama setelah Anda menjalankan pianobar.
swrobel
2

Seperti yang dikatakan @Felix, upgradejangan gunakan update.

Jika masalahnya berasal dari pohon git Anda yang kotor dan Anda hanya ingin melupakan modifikasi Anda, ketikkan git reset --hard HEADsebelum memutakhirkan.

Simon
sumber
tidak ada yang terjadi ketika saya mencoba itu ... brew upgrade pianobar -vmemberikan Kernel.exit
cwd
apa yang kamu dapatkan saat berlari type -a brew?
Robert S Ciaccio
brew adalah / usr / local / bin / brew
cwd
0

Ini adalah jawaban umum, bukan khusus untuk pianobarmasalah Anda .

Untuk memperbarui perangkat lunak yang diinstal, perbarui minuman pertama: brew update

dan kemudian tingkatkan perangkat lunak yang diinstal: brew upgrade

Untuk mencegah beberapa perangkat lunak ditingkatkan, lakukan brew pin YOUR-PACKAGE-HERE

lenooh
sumber