PHP no me estaba funcionando porque estaba encontrando este problema de libpng , así que reinstalé una nueva versión con Homebrew.
Sin embargo, recibo un error similar con libjpegeste tiempo:
$ 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
¿Alguna sugerencia?

brew doctorybrew list?Respuestas:
Como lo propuso @ jirson-tavera en el problema del repositorio homebrew-php , esto se puede solucionar sin anular la instalación de su preparación:
fuente
Aunque la solución en la respuesta aceptada funciona, no es la forma correcta de solucionar el problema. Viola la integridad de los metadatos de brew.
Problema
El problema es que la
jpegfórmula de Homebrew se ha actualizado a v9, pero la fórmula PHP "embotellada" existente todavía está construida y vinculada a la versión anterior, v8, que ya no existe en su sistema.Tiene algunas opciones para solucionar el problema.
1. Vuelva a compilar la
phpxxfórmula de origen (muy recomendable)Desinstale su fórmula php y vuelva a generarla desde la fuente en lugar de usar la versión embotellada. De esta manera, php usará y se vinculará con la versión actualmente instalada de
jpeg. Suponiendo que está tratando conphp71:2. Degradar la
jpegfórmula de la manera correcta (es preferible que volver a compilarla manualmente)Si no ha ejecutado
brew cleanup, ya tiene lajpegversión anterior en la bodega de su cerveza, cámbiela:Si recibe un
jpeg does not have a version "8d" in the Cellar.error, primero debe restaurarlo revirtiendo el historial:Puede averiguar el hash de confirmación utilizando
brew log jpegy revisando los mensajes de confirmación.La desventaja es que puede haber otras fórmulas que requieran que la versión más nueva funcione correctamente, por ejemplo
imagemagick. Si tiene problemas de incompatibilidad, consulte la primera solución anterior.3. Cambie de categoría
jpegmediante la recompilación manual (no recomendado)Obtenga la fuente, compile y sobrescriba la versión de brew. Consulte la respuesta de Denis para obtener más detalles.
Esto no se recomienda porque viola la integridad de sus metadatos de preparación. Brew cree que tiene la versión 8b, sin embargo, usted compiló manualmente 9b y sobrescribió los archivos.
4. Enlace simbólico manual a la versión anterior (¿en serio?)
No enlace simbólicamente manualmente las sobras
libjpeg.8.dylib. Si el archivo está allí, puedebrew switchhacerlo como se menciona en la segunda solución anterior.Es el peor truco que puedes hacer aquí.
Estos problemas se solucionarán eventualmente .
fuente
xcode-select --installantes de poder reinstalar PHP 7.1 desde la fuente.git checkout b231469hacerlocurl https://raw.githubusercontent.com/Homebrew/homebrew-core/b23146936a3abb57aabb39017561e7b0c750abbf/Formula/jpeg.rb > Formula/jpeg.rb, luego en lugar degit checkout masterescribirgit checkout Formula/jpeg.rb.curl. Para mí, parece que su clon local de alguna manera no está actualizado con el control remoto 🤔.git checkout b231469obtiene un error, intente esto primerogit -C "$(brew --repo homebrew/core)" fetch --unshallowHoy encontré un problema similar. La causa del problema fue una versión más reciente de
libjpeg. Y la solución que funcionó fue construir laphpbotella desde la fuente.Consulte la versión disponible de
libjpeg:Instalar
phpdesde la fuente:Actualización :
si ya lo ha instalado
php, debe desinstalarlo antes de compilar desde la fuente. También se aplica a las extensiones.fuente
phpy las extensiones. Luego instalephpcon--build-from-source. Revisé el historial de git de lalibjpegfórmula y la versión delibjpegse actualizó9bel 5 de agosto.brew install --build-from-source php71. El problema surgió para mí esta noche después de correrbrew upgrade.Tuve el mismo problema y lo resolví descargando el libjpeg tarball manuallu desde aquí y ejecutando:
fuente
Estaba teniendo un problema similar al intentar actualizar
composer:El problema era que
phpya no podía encontrar lalibjpegbiblioteca. Una forma de solucionar este problema es reinstalarphpylibjpeg. Así es como los reinstalé:Luego pude actualizar todo nuevamente :)
🍻
fuente
Una solución sucia, que funciona bien para mí.
fuente
Seguir el comando funcionó para mí.
fuente
ls /usr/local/Cellar/jpeg/y vi dos subdirectorios8dy9cdado que mi error fuedyld: Library not loaded: /usr/local/opt/jpeg/lib/libjpeg.8.dylib, tenía sentido que estaba tratando de cargar el incorrecto.No probé la respuesta de Jirson, pero lo que funcionó para mí fue:
fuente
--ignore-dependenciesopción al desinstalar.Estaba teniendo el mismo problema y lo único que ayudó fue usar el
--build-from-sourceparámetro:fuente
También tuve este problema. Lo resolví de esta manera: Desinstalar jpeg / 8b:
Desinstale jpeg / 9b:
Vuelva a instalar jpeg / 9b
fuente
Estoy compartiendo esto porque tuve el mismo problema al usar PHP5.4. Originalmente, tenía PHP5.6 y funcionaba bien. Luego bajé a php5.4 ya que mi aplicación solo es compatible con PHP5.4.
Entonces surgió este error. Me di cuenta de que tengo
libjpeg.9.dyliby PHP5.4 está buscandolibjpeg.8.dylib.Hacer lo siguiente solucionó el problema:
fuente
Homebrew php se ha actualizado y ya no es un problema con libjpeg
fuente
Como señala @lifecom, esto se soluciona con la actualización php70 de homebrew, pero aún puede tener el problema si
brew upgradeestá tratando de actualizar otros paquetes antes de actualizar php70.Solucione esto actualizando manualmente php70 primero con
brew upgrade php70y luego debería poder ejecutarbrew upgradesin problemas (o, bueno, al menos sin este problema).fuente
Valet - mac con php7.1
fuente
En algunos casos, especialmente en Catalina, el barril Homebrew para el paquete puede existir pero no estar correctamente vinculado. En ese caso, intente:
fuente