Meskipun solusi dalam jawaban yang diterima berfungsi, itu bukan cara yang tepat untuk memperbaiki masalah. Itu melanggar integritas metadata brew.
Masalah
Masalahnya adalah jpeg
formula Homebrew telah diupgrade ke v9 tetapi formula PHP "botol" yang ada masih dibangun dan ditautkan dengan versi sebelumnya, v8, yang tidak lagi ada di sistem Anda.
Anda memiliki beberapa opsi untuk memperbaiki masalah tersebut.
1. Kompilasi ulang phpxx
rumus dari sumber (sangat disarankan)
Hapus instalan rumus php Anda, dan buat ulang dari sumbernya daripada menggunakan versi botol. Dengan cara ini, php akan menggunakan dan menautkan ke versi yang saat ini diinstal jpeg
. Dengan asumsi Anda berurusan dengan php71
:
brew reinstall php71 --build-from-source
2. Turunkan jpeg
rumus dengan cara yang benar (lebih disukai daripada menyusun ulang secara manual)
Jika Anda belum menjalankan brew cleanup
, Anda sudah mendapatkan jpeg
versi sebelumnya di gudang minuman Anda, beralihlah ke versi itu:
brew switch jpeg 8d
Jika Anda mendapatkan jpeg does not have a version "8d" in the Cellar.
kesalahan, Anda harus memulihkannya terlebih dahulu dengan mengembalikan riwayat:
cd $(brew --prefix)/Homebrew/Library/Taps/homebrew/homebrew-core
git checkout b231469
HOMEBREW_NO_AUTO_UPDATE=1 brew install jpeg
git checkout master
brew switch jpeg 8d
Anda dapat mengetahui hash komit dengan menggunakan brew log jpeg
dan melalui pesan komit.
Kelemahannya adalah mungkin ada rumus lain yang membutuhkan versi yang lebih baru untuk bekerja dengan baik, misalnya imagemagick
. Jika Anda menghadapi masalah ketidakcocokan, periksa solusi pertama di atas.
3. Turunkan versi jpeg
dengan mengompilasi ulang secara manual (tidak disarankan)
Ambil sumbernya, kompilasi dan timpa versi minumannya. Lihat jawaban Denis untuk detailnya.
Ini tidak disarankan karena melanggar integritas metadata minuman Anda. Brew berpikir bahwa ia memiliki versi 8b, namun, Anda mengompilasi 9b secara manual dan menimpa file.
4. Tautkan versi lama secara manual (serius?)
Jangan menghubungkan sisa file secara manuallibjpeg.8.dylib
. Jika file ada di sana, Anda bisa langsung brew switch
ke sana seperti yang disebutkan dalam solusi kedua di atas.
Itu hanya peretasan terburuk yang dapat Anda lakukan di sini.
Masalah seperti itu pada akhirnya akan diperbaiki .
brew doctor
danbrew list
?