Mimo że rozwiązanie w zaakceptowanej odpowiedzi działa, nie jest to właściwy sposób rozwiązania problemu. Narusza integralność metadanych brew.
Problem
Problem w tym, że Homebrew jpeg
formuła została zaktualizowana do v9, ale istniejąca "butelkowa" formuła PHP jest nadal zbudowana i połączona z poprzednią wersją, v8, która nie istnieje już w twoim systemie.
Masz kilka opcji rozwiązania problemu.
1. Ponownie skompiluj phpxx
formułę ze źródła (zdecydowanie zalecane)
Odinstaluj formułę php i odbuduj ją ze źródła zamiast używać wersji butelkowanej. W ten sposób php użyje i połączy się z aktualnie zainstalowaną wersją jpeg
. Zakładając, że masz do czynienia z php71
:
brew reinstall php71 --build-from-source
2. Zmień jpeg
formułę na starszą wersję we właściwy sposób (preferowane zamiast ręcznej ponownej kompilacji)
Jeśli jeszcze nie biegałeś brew cleanup
, masz już poprzednią jpeg
wersję w piwnicy swojego naparu, przełącz się na nią:
brew switch jpeg 8d
Jeśli pojawi się jpeg does not have a version "8d" in the Cellar.
błąd, musisz go najpierw przywrócić, przywracając historię:
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
Możesz znaleźć skrót zatwierdzenia za pomocą brew log jpeg
i przeglądając komunikaty o zatwierdzeniach.
Wadą jest to, że mogą istnieć inne formuły, które wymagają poprawnego działania nowszej wersji, np imagemagick
. Jeśli napotkasz takie problemy z niekompatybilnością, sprawdź pierwsze rozwiązanie powyżej.
3. Downgrade jpeg
przez ręczną rekompilację (niezalecane)
Pobierz źródło, skompiluj i nadpisz wersję brew. Odnosić się do odpowiedzi Denisa .
Nie jest to zalecane, ponieważ narusza integralność metadanych brew. Brew uważa, że ma wersję 8b, jednak ręcznie skompilowałeś 9b i nadpisałeś pliki.
4. Ręcznie dowiązanie symboliczne do starej wersji (poważnie?)
Nie należy ręcznie łączyć symbolicznego pozostałości libjpeg.8.dylib
. Jeśli plik tam jest, możesz po prostubrew switch
jak wspomniano w drugim rozwiązaniu powyżej.
To po prostu najgorszy hack, jaki możesz tutaj zrobić.
Takie problemy zostaną ostatecznie naprawione .
brew doctor
ibrew list
?