Хоча рішення у прийнятій відповіді працює, це не правильний спосіб виправити проблему. Це порушує цілісність метаданих пива.
Проблема
Проблема полягає в тому, що jpeg
формула Homebrew була оновлена до версії v9, але існуюча «пляшкова» формула PHP все ще побудована та пов’язана з попередньою версією v8, яка вже не існує у вашій системі.
У вас є кілька варіантів виправити проблему.
1. Рекомпілюйте phpxx
формулу з джерела (настійно рекомендується)
Видаліть формулу php та відновіть її з джерела замість використання розливної версії. Таким чином, php використовуватиме та посилатиметься на поточно встановлену версію jpeg
. Припустимо, що ви маєте справу з php71
:
brew reinstall php71 --build-from-source
2. Пониження jpeg
формули правильним способом (бажано над перекомпіляцією вручну)
Якщо ви ще не запустили brew cleanup
попередню jpeg
версію в підвалі варіння, перейдіть на неї:
brew switch jpeg 8d
Якщо ви отримаєте jpeg does not have a version "8d" in the Cellar.
помилку, спочатку потрібно відновити її, повернувши історію:
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
Ви можете дізнатись хеш комісій, скориставшись brew log jpeg
повідомленнями фіксування та переглянувши їх.
Мінус полягає в тому, що можуть бути інші формули, які потребують належної роботи нової версії, наприклад imagemagick
. Якщо ви стикаєтеся з такими проблемами несумісності, перевірте перше рішення вище.
3. Пониження рівня jpeg
шляхом перекомпіляції вручну (не рекомендується)
Отримайте джерело, компілюйте та перезаписуйте версію пивоваріння. Зверніться до відповіді Дениса для деталей.
Це не рекомендується, оскільки це порушує цілісність ваших заварених метаданих. Brew вважає, що вона має версію 8b, однак ви вручну склали 9b і перезаписали файли.
4. Ручне позначення старої версії (серйозно?)
Не вручну з'єднуйте ліворуч libjpeg.8.dylib
. Якщо файл є, ви можете просто brew switch
до нього, як зазначено у другому рішенні вище.
Це просто найгірший злом, який ви можете зробити тут.
Ці питання будуть в кінцевому рахунку фіксуються .
brew doctor
іbrew list
?