Хоча рішення у прийнятій відповіді працює, це не правильний спосіб виправити проблему. Це порушує цілісність метаданих пива.
Проблема
Проблема полягає в тому, що 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?