dyld: biblioteca no cargada: /usr/local/lib/libpng16.16.dylib con cualquier cosa relacionada con php

119

El uso de cualquier aplicación php da como resultado:

dyld: Library not loaded: /usr/local/lib/libpng15.15.dylib
Referenced from: /usr/local/bin/php
Reason: image not found
[1]    4494 trace trap  php

La mayoría de mis aplicaciones php se instalaron usando homebrew con la excepción de composer (instalado usando curl)

Intenté eliminar el libpng y reinstalarlo con homebrew sin éxito.

Lo siguiente fue cambiar a la última versión de libpng 1.5 como se indica en el mensaje de error:

$ brew info libpng
libpng: stable 1.6.10 (bottled) 
http://www.libpng.org/pub/png/libpng.html
/usr/local/Cellar/libpng/1.5.17 (15 files, 1.0M)
Poured from bottle
/usr/local/Cellar/libpng/1.5.18 (15 files, 1.0M)
Poured from bottle
/usr/local/Cellar/libpng/1.6.10 (17 files, 1.3M) *

$ brew switch libpng 1.5.18
Cleaning /usr/local/Cellar/libpng/1.5.17
Cleaning /usr/local/Cellar/libpng/1.5.18
Cleaning /usr/local/Cellar/libpng/1.6.10
16 links created for /usr/local/Cellar/libpng/1.5.18

Ahora el error ha cambiado a:

dyld: Library not loaded: /usr/local/lib/libpng16.16.dylib
Referenced from: /usr/local/lib/libfreetype.6.dylib
Reason: image not found
[1]    6993 trace trap  phpunit

Estoy ejecutando Mavericks (10.9.2) y PHP 5.5.1.

¡Gracias por adelantado!

user3458861
fuente

Respuestas:

156

Te sugiero que corras:

$ brew update && brew upgrade

Hasta hace un par de minutos yo también tuve este problema. Como tengo una versión PHP actualizada, la resolví con:

$ brew reinstall php55

Espero que ayude.

Pera Jovic
fuente
Gracias, desinstalé y reinstalé homebrew por completo, pero en retrospectiva, creo que esta habría sido una mejor opción.
user3458861
Tuve el mismo problema con un programa diferente (gracia) y esto lo solucionó.
mstringer
1
Quizás útil: es posible que ImageMagick sea el culpable de esto. Tuve un problema similar con ImageMagick borrando / usr / local / bin / compare que tenía que hacer diffmerge.
phpguru
No tuve que hacer la actualización de $ brew, pero la actualización de $ brew y la reinstalación de php53 de $ brew funcionaron para mí.
Thomas Bennett
Advertencia: la actualización actualizará todas sus fórmulas (desactualizadas) y puede demorar un poco.
laffuste
42

Seguí lo anterior (nunca es una mala idea estar al día con la cerveza de todos modos) y todavía tenía exactamente el mismo problema:

LAPTOP:folder Username$ php -v
dyld: Library not loaded: /usr/local/lib/libpng15.15.dylib
  Referenced from: /usr/local/bin/php
  Reason: image not found
Trace/BPT trap: 5

Luego descubrí una forma más simple:

Busque su (s) versión (s) libpng en su caja:

# Requires locate & updatedb for mac os x
# See Link [1] 
LAPTOP:folder Username$ locate libpng15.15.dylib
/Applications/GIMP.app/Contents/Resources/lib/libpng15.15.dylib
/usr/X11/lib/libpng15.15.dylib
/usr/local/Cellar/libpng/1.5.14/lib/libpng15.15.dylib

Haz un enlace simbólico:

LAPTOP:folder Username$ ln -s /usr/local/Cellar/libpng/1.5.14/lib/libpng15.15.dylib /usr/local/lib/libpng15.15.dylib

Inténtalo de nuevo:

LAPTOP:folder Username$ php -v
PHP 5.3.26 (cli) (built: Aug 25 2013 16:07:23) 
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2013 Zend Technologies
    with Xdebug v2.2.3, Copyright (c) 2002-2013, by Derick Rethans

1) Mac OS X equivalente a localizar

phpguru
fuente
8
Por cierto, mdfind libpng15.15.dylibno requiere localizar hack
Jure C.
Gracias @JureC., No estaba al tanto de mdfind. También puede usar sudo find / -name libpng15 -print pero el resultado es un poco detallado.
phpguru
esto es lo único que funcionó para mí, gracias: D
holmeswatson
Esto funcionó para mí también. El problema que tuve es que libpng15 ahora es una versión anterior, por lo que una actualización no se solucionaría.
bigtunacan
1
¡Esta es la única solución que funcionó para mí! ¡Gracias!
JLuiz
18

Es porque no hay enlaces simbólicos para libpng. Debes vincular libpng nuevamente.

brew unlink libpng && brew link libpng

Y puede obtener algún error. Arreglé ese error corrigiendo el permiso. Tal vez sea por macports desinstalados.

sudo chown -R yourid:staff /usr/local/share/man/

Vuelva a crear el enlace y funcionará.

Parque Jonghee
fuente
En El Capitán, usando homebrew-php, y esto terminó siendo una solución para mí. Además del enlace anterior, también tuve que ejecutar brew link unixodbc. Pero mi sistema tenía la propiedad de ese paquete en particular.
justinpage
11

Resolví esto copiándolo en el directorio que faltaba:

cp /opt/X11/lib/libpng15.15.dylib /usr/local/lib/libpng15.15.dylib

brew reinstall libpng siguió instalando libpng16, no libpng15, así que me vi obligado a hacer lo anterior.

user391339
fuente
Esto causará un problema adicional al ejecutar brew doctor. Warning: Unbrewed dylibs were found in /usr/local/lib. If you didn't put them there on purpose they could cause problems when building Homebrew formulae, and may need to be deleted. Unexpected dylibs: /usr/local/lib/libpng15.15.dylib
johnatasjmo
8

En mi caso lo fue libjpeg. ¡Todo lo que tenía que hacer era correr brew reinstall libjpegy todo funcionó!

saada
fuente
2
En mi caso lo fue libpng. brew reinstall libpngresuelto
user34812
4

En caso de que alguien más se encuentre con este problema, lo resolví de la siguiente manera

brew update && brew upgrade # installs libpng 1.6

Esto causó un error con otros paquetes que requerían 1.5 con los que fueron construidos, así que lo vinculé:

cd /usr/local/lib/
ln -s ../Cellar/libpng/1.5.18/lib/libpng15.15.dylib

Ahora ambos viven en armonía y uno al lado del otro para los diferentes paquetes. Sería mejor reconstruir los paquetes que dependen de 1.5, pero esto funciona como una solución rápida.

Alex
fuente
3

Sé que esta pregunta ya tiene una respuesta que da solución. Pero quiero darle mi granito de arena para ayudar a la gente a comprender el problema. Obteniendo el mismo problema, he creado una pregunta específica . Tengo el mismo problema, pero solo con PHPStorm. Y exactamente cuando trato de ejecutar la prueba desde el editor.

dyld es el enlazador dinámico

Siembro que dyld estaba buscando /usr/local/lib/libpng15.15.dylib pero dentro de mi / usr / local / lib / no lo había. En esa carpeta, obtuve libpng16.16.dylib.

Gracias a un comentario, entiendo que mi / usr / bin / php era un puntero a php 5.5.8. En cambio, ... / usr / local / bin / php era 5.5.14. PHPStorm trabajó con / usr / bin / php que es la configuración predeterminada. Cuando ejecuto php a través de la consola, ejecuto / urs / local / bin / php.

Entonces, ... Si obtiene algún error de dyld, tal vez tenga una configuración de php incorrecta. Esa es la razón porque

$ brew update && brew upgrade
$ brew reinstall php55

Pero no sé por qué esto no me resuelve el problema. Tal vez porque tengo

sensorario
fuente
1

También tuve este problema, y ​​ninguna de las soluciones en este hilo funcionó para mí. Resulta que el problema era que tenía esta línea en ~/.bash_profile:

alias php="/usr/local/php/bin/php"

Y resultó que /usr/local/phpera solo un enlace simbólico a /usr/local/Cellar/php54/5.4.24/. Entonces, cuando php -iinvoqué, todavía estaba invocando php54. Acabo de eliminar esta línea de mi perfil de bash y luego php funcionó.

Por alguna razón, aunque php55 ahora se estaba ejecutando, el php.iniarchivo de php54 todavía estaba cargado y recibí esta advertencia cada vez que invoqué php:

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/local/Cellar/php54/5.4.38/lib/php/extensions/no-debug-non-zts-20100525/memcached.so' - dlopen(/usr/local/Cellar/php54/5.4.38/lib/php/extensions/no-debug-non-zts-20100525/memcached.so, 9): image not found in Unknown on line 0

Para solucionar esto, acabo de agregar la siguiente línea a mi perfil de bash:

export PHPRC=/usr/local/etc/php/5.5/php.ini

¡Y luego todo funcionó con normalidad!

Matt Korostoff
fuente
1

Tuve este error que no fue resuelto por brew update && brew upgrade. Por alguna razón, necesitaba instalarlo desde cero:

$ brew install libpng

osowskit
fuente
1

Lo pasé muy mal con este error:

Motivo: Versión de biblioteca incompatible: php requiere la versión 44.0.0 o posterior, pero libpng16.16.dylib proporciona la versión 42.0.0 Trace / BPT trap: 6

Hice todas las cosas anteriores con brebaje y mucho más ... ¡pero no fue esto!

Compruebe dónde está su biblioteca:

sudo find / -name libpng16.16.dylib

En mi caso, aquí estaba el resultado relevante:

  • /usr/local/lib/libpng16.16.dylib
  • /usr/local/Cellar/libpng/1.6.34/lib/libpng16.16.dylib
  • /Applications/MAMP/Library/lib/libpng16.16.dylib
  • /opt/X11/lib/libpng16.16.dylib

Entonces, como soy un usuario de MAMP, resultó que el error apareció mientras intentaba actualizar de PHP 7.1.0 a 7.1.8 (el último php de MAMP disponible ) ya que Symfony4 requiere al menos 7.1.3

Al final instalé la nueva versión de MAMP y funcionó (4.1 a 4.2). Sin embargo, tenga cuidado cuando haga esto, primero debe hacer una copia de seguridad de todo en su carpeta MAMP / htdoc. También mantenga una copia de seguridad de su versión de php compilada personalizada que puede vivir en MAMP / bin / php. (En mi caso tenía una versión especial de PHP con controladores de Oracle).

Además, si configuró la versión de php de MAMP para que sea su intérprete de php CLI, deberá actualizar la PATH en su .bash_profile

Debería verse algo como esto:

export PATH = / Applications / MAMP / bin / php / php7.1.8 / bin: $ PATH

Espero que esto pueda ayudar.

Kaizoku Gambare
fuente
0

Tuve este problema después de actualizar MAMP, y el $ PATH personalizado que había configurado era incorrecto debido a la nueva versión de php, por lo que se cargó primero la versión incorrecta de php, y fue esa versión de php la que desencadenó el error.

Actualizar la ruta en mi .bash_profile solucionó mi problema.

axxxman
fuente