PHP ne fonctionnait pas pour moi car je rencontrais ce problème de libpng , alors j'ai réinstallé une nouvelle version avec Homebrew.
Cependant, je reçois une erreur similaire avec libjpeg
cette fois-ci:
$ php -v
dyld: Library not loaded: /usr/local/lib/libjpeg.8.dylib
Referenced from: /usr/local/bin/php
Reason: image not found
Trace/BPT trap: 5
Aucune suggestion?
Comme proposé par @ jirson-tavera dans le problème de mise en pension de homebrew-php , ceci peut être corrigé sans modifier l'installation de votre infusion:
wget -c http://www.ijg.org/files/jpegsrc.v8d.tar.gz
tar xzf jpegsrc.v8d.tar.gz
cd jpeg-8d
./configure
make
cp ./.libs/libjpeg.8.dylib /usr/local/opt/jpeg/lib
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 la bière.
Le problème est que la formule jpeg
de Homebrew a été mise à niveau vers la v9 mais que la formule "en bouteille" PHP 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.
phpxx
à partir de la source (hautement 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 traitez avec php71
:
brew reinstall php71 --build-from-source
jpeg
dans le bon sens (préféré sur recompiler manuellement)Si vous n'avez pas exécuté brew cleanup
, vous avez déjà la version jpeg
précédente dans la cave de votre bière, passez à celle-ci:
brew switch jpeg 8d
Si vous obtenez une erreur jpeg does not have a version "8d" in the Cellar.
, vous devez d'abord le 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 connaître le hachage de validation en utilisant brew log jpeg
et en parcourant les messages de validation.
L'inconvénient est qu'il peut exister d'autres formules nécessitant le fonctionnement correct de la version la plus récente, par exemple. imagemagick
. Si vous rencontrez de tels problèmes d’incompatibilité, vérifiez la première solution ci-dessus.
jpeg
en recompilant manuellement (non recommandé)Récupérez le code source, compilez et écrasez la version de Brew. Reportez-vous à Réponse de Denis pour plus de détails.
Ceci n'est pas recommandé car cela viole l'intégrité des métadonnées de votre brassage. Brew pense qu'il a la version 8b, cependant, vous avez compilé manuellement 9b et écrasé les fichiers.
Ne pas manuellement créer un lien symbolique le reste libjpeg.8.dylib
. Si le fichier est là, vous pouvez simplement brew switch
comme mentionné dans la deuxième solution ci-dessus.
C'est le pire bidouillage que vous puissiez faire ici.
Ces problèmes seront éventuellement corrigés .
J'ai rencontré le même problème aujourd'hui. Le problème était dû à une version plus récente de libjpeg
. Et la solution qui a fonctionné a été de construire une bouteille php
à partir de la source.
Vérifier la version disponible de libjpeg
:
$brew info libjpeg
jpeg: stable 9b (bottled)
Image manipulation library
http://www.ijg.org
/usr/local/Cellar/jpeg/9b (20 files, 724KB) *
Poured from bottle on 2017-08-07 at 12:06:42
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/jpeg.rb
Installez php
à partir du source:
brew install --build-from-source php56
Mettre à jour :
Si vous avez déjà installé php
, vous devez le désinstaller avant de générer à partir du source. Cela s'applique également aux extensions.
J'avais un problème similaire en essayant de mettre à jour composer
:
dyld: la bibliothèque n'est pas chargée: /usr/local/opt/jpeg/lib/libjpeg.8.dylib
Référencé depuis:/usr/local/bin/php
Raison: image non trouvée
composer: PHP Le support de Phar est requis pour cette formule
Erreur: une exigence non satisfaite a échoué à cette construction.
Le problème était php
n'a pas pu trouver la bibliothèque libjpeg
. Une façon de résoudre ce problème consiste à réinstaller php
et libjpeg
. Voici comment je les ai réinstallés:
# find out which version of php is installed
brew list | grep php
# uninstall php
brew uninstall php70 --ignore-dependencies
# uninstall libjpeg
brew uninstall libjpeg --ignore-dependencies
# install libjpeg again
brew install libjpeg
# install php again
brew install php70
J'ai ensuite pu tout améliorer à nouveau :)
brew update && brew upgrade
????
J'ai eu le même problème et je l'ai résolu en téléchargeant manuellement l'archive libjpeg à partir de ici et en cours d'exécution:
tar zxvf jpegsrc.v6b.tar.gz
cd jpeg-6b
cp /usr/share/libtool/config.sub .
cp /usr/share/libtool/config.guess .
./configure --enable-shared --enable-static
make
Sudo make install
Sudo ranlib /usr/local/lib/libjpeg.a #Optionally
Je n'ai pas essayé la réponse de Jirson, mais ce qui a fonctionné pour moi a été:
brew uninstall libjpeg
brew install libjpeg
La commande suivante a fonctionné pour moi.
brew switch libjpeg 8d
J'avais le même problème et la seule chose qui m'a aidé était d'utiliser le paramètre --build-from-source
:
brew install php70 --build-from-source
Une solution sale, cela fonctionne bien pour moi.
ln -s /usr/local/lib/libjpeg.9.dylib /usr/local/lib/libjpeg.8.dylib
Je partage cela car j'avais le même problème avec PHP 5.4. A l'origine, j'avais PHP5.6 et ça fonctionnait bien. Ensuite, j'ai rétrogradé en php5.4 car mon application ne supporte que PHP 5.4.
Puis cette erreur est venue. J'ai remarqué que j'ai libjpeg.9.dylib
et que PHP5.4 recherche libjpeg.8.dylib
.
Procédez comme suit pour résoudre le problème:
brew uninstall php54
brew install --build-from-source php54
Comme @lifecom le note, ceci est corrigé avec la mise à jour php70 de homebrew, mais vous pouvez toujours rencontrer le problème si brew upgrade
tente de mettre à jour d'autres paquets avant la mise à jour de php70.
Corrigez cela en mettant à jour manuellement php70 d’abord avec brew upgrade php70
et vous devriez alors pouvoir exécuter brew upgrade
sans problème (ou, enfin, au moins sans this problem).
brew switch libjpeg 8d
Valet - mac avec php7.1
Homebrew php a été mis à jour et n'est plus un problème avec libjpeg