Même si la solution dans la réponse acceptée fonctionne, ce n'est pas la bonne façon de résoudre le problème. Cela viole l'intégrité des métadonnées de Brew.
Problème
Le problème est que la jpeg
formule de Homebrew a été mise à niveau vers la v9, mais la formule PHP «en bouteille» existante est toujours construite et liée à la version précédente, v8, qui n'existe plus sur votre système.
Vous avez quelques options pour résoudre le problème.
1. Recompiler la phpxx
formule à partir de la source (fortement recommandé)
Désinstallez votre formule php et reconstruisez-la à partir de la source au lieu d'utiliser la version en bouteille. De cette façon, php utilisera et établira un lien avec la version actuellement installée de jpeg
. En supposant que vous avez affaire à php71
:
brew reinstall php71 --build-from-source
2. Rétrograder la jpeg
formule de la bonne manière (préférable de la recompiler manuellement)
Si vous n'avez pas couru brew cleanup
, vous avez déjà la jpeg
version précédente dans la cave de votre bière, passez-y:
brew switch jpeg 8d
Si vous obtenez une jpeg does not have a version "8d" in the Cellar.
erreur, vous devez d'abord la restaurer en rétablissant l'historique:
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
Vous pouvez trouver le hachage de validation en utilisant brew log jpeg
et en parcourant les messages de validation.
L'inconvénient est qu'il peut y avoir d'autres formules qui nécessitent que la version la plus récente fonctionne correctement, par exemple imagemagick
. Si vous rencontrez de tels problèmes d'incompatibilité, vérifiez la première solution ci-dessus.
3. Rétrograder jpeg
en recompilant manuellement (non recommandé)
Récupérez la source, compilez et écrasez la version de brew. Reportez-vous à la réponse de Denis pour plus de détails.
Ce n'est pas recommandé car cela viole l'intégrité de vos métadonnées de brassage. Brew pense qu'il a la version 8b, cependant, vous avez compilé manuellement 9b et écrasé les fichiers.
4. Reliez manuellement l'ancienne version (sérieusement?)
Ne liez pas manuellement les restes libjpeg.8.dylib
. Si le fichier est là, vous pouvez simplement le brew switch
faire comme mentionné dans la deuxième solution ci-dessus.
C'est juste le pire hack que vous puissiez faire ici.
Ces problèmes seront finalement résolus .
brew doctor
etbrew list
?