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 libjpeg
este 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 doctor
ybrew 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
jpeg
fó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
phpxx
fó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
jpeg
fórmula de la manera correcta (es preferible que volver a compilarla manualmente)Si no ha ejecutado
brew cleanup
, ya tiene lajpeg
versió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 jpeg
y 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
jpeg
mediante 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 switch
hacerlo 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 --install
antes de poder reinstalar PHP 7.1 desde la fuente.git checkout b231469
hacerlocurl https://raw.githubusercontent.com/Homebrew/homebrew-core/b23146936a3abb57aabb39017561e7b0c750abbf/Formula/jpeg.rb > Formula/jpeg.rb
, luego en lugar degit checkout master
escribirgit checkout Formula/jpeg.rb
.curl
. Para mí, parece que su clon local de alguna manera no está actualizado con el control remoto 🤔.git checkout b231469
obtiene un error, intente esto primerogit -C "$(brew --repo homebrew/core)" fetch --unshallow
Hoy 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 laphp
botella desde la fuente.Consulte la versión disponible de
libjpeg
:Instalar
php
desde 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
php
y las extensiones. Luego instalephp
con--build-from-source
. Revisé el historial de git de lalibjpeg
fórmula y la versión delibjpeg
se actualizó9b
el 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
php
ya no podía encontrar lalibjpeg
biblioteca. Una forma de solucionar este problema es reinstalarphp
ylibjpeg
. 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 subdirectorios8d
y9c
dado 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-dependencies
opción al desinstalar.Estaba teniendo el mismo problema y lo único que ayudó fue usar el
--build-from-source
pará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.dylib
y 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 upgrade
está tratando de actualizar otros paquetes antes de actualizar php70.Solucione esto actualizando manualmente php70 primero con
brew upgrade php70
y luego debería poder ejecutarbrew upgrade
sin 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