dyld: Kitaplık yüklenmedi: /usr/local/lib/libpng16.16.dylib php ile ilgili herhangi bir şeyle


119

Herhangi bir php uygulamasının kullanılması şunlarla sonuçlanır:

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

Php uygulamalarımın çoğu, composer dışında homebrew kullanılarak kuruldu (curl kullanılarak kuruldu)

Libpng'yi kaldırmayı ve homebrew ile yeniden yüklemeyi boşuna denedim.

Daha sonra, hata mesajında ​​belirtildiği gibi libpng 1.5'in en son sürümüne geçmek oldu:

$ 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

Şimdi hata şu şekilde değişti:

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

Mavericks (10.9.2) ve PHP 5.5.1 çalıştırıyorum.

Şimdiden teşekkürler!

Yanıtlar:


156

Koşmanı öneririm:

$ brew update && brew upgrade

Birkaç dakika öncesine kadar ben de bu problemi yaşadım. Güncel bir PHP sürümüne sahip olduğum için bunu şu şekilde çözdüm:

$ brew reinstall php55

Umarım yardımcı olur.


Teşekkürler, homebrew'i tamamen kaldırdım ve yeniden yükledim, ancak geçmişe bakıldığında bunun daha iyi bir seçenek olacağını düşünüyorum.
user3458861

Aynı sorunu farklı bir programla (grace) yaşadım ve bu sorunu çözdü.
mstringer

1
Belki yardımcı olabilir: Bunun sorumlusu ImageMagick olabilir. ImageMagick'in / usr / local / bin / Compare'i yok etmesiyle ilgili benzer bir sorun yaşadım ve bunu farklılaştıracaktım.
phpguru

$ Brew yükseltmesi yapmak zorunda değildim - ancak $ brew güncellemesi ve $ brew php53'ü yeniden yüklemek benim için çalıştı.
Thomas Bennett

Uyarı: Yükseltme, tüm (eski) formüllerinizi günceller ve biraz zaman alabilir!
laffuste

42

Yukarıdakileri takip ettim (yine de demleme ile güncel kalmak asla kötü bir fikir değildi) ve yine de aynı sorunu yaşadım:

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

Sonra daha basit bir yol buldum:

Kutunuzda libpng sürümlerinizi arayın:

# 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

Bir sembolik bağlantı oluşturun:

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

Tekrar deneyin:

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) bulmanın Mac OS X eşdeğeri


8
Btw, mdfind libpng15.15.dylibhack gerektirmez
Jure C.

Teşekkürler @ JureC., Mdfind'in farkında değildim. Sudo find / -name libpng15 -print'i de kullanabilirsiniz, ancak çıktı biraz ayrıntılıdır.
phpguru

bu benim için işe
yarayan

Bu benim için de çalıştı. Yaşadığım sorun, libpng15'in artık eski bir sürüm olması, bu nedenle bir güncelleme düzeltilemeyecek.
bigtunacan

1
Benim için işe yarayan tek çözüm bu! Teşekkürler!
JLuiz

18

Bunun nedeni libpng için sembolik bağ olmamasıdır. Libpng'yi yeniden bağlamanız gerekiyor.

brew unlink libpng && brew link libpng

Ve bazı hatalar alabilirsiniz. İzni düzelterek bu hatayı düzelttim. Belki de kaldırılmış macports yüzündendir.

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

Tekrar bağlantı oluşturun ve çalışacaktır.


El Capitan'da homebrew-php kullanarak ve bu benim için bir çözüm oldu. Yukarıdaki bağlantıya ek olarak, ben de koşmam gerekiyordu brew link unixodbc. Ama benim sistemim bu özel paketin mülkiyetine sahipti.
justinpage

11

Bunu eksik dizine kopyalayarak çözdüm:

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

brew yeniden yükleme libpng, libpng15'i değil libpng16'yı kurmaya devam etti, bu yüzden yukarıdakileri yapmak zorunda kaldım.


Bu, demleme doktoru çalıştırırken ek bir soruna neden olacaktır. 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

Benim durumumda öyleydi libjpeg. Tek yapmam gereken koşmaktı brew reinstall libjpegve her şey yolunda gitti!


2
Benim durumumda öyleydi libpng. brew reinstall libpngçözdü
user34812

4

Sadece bir başkasının bu problemle karşılaşması durumunda, aşağıdaki şekilde çözdüm

brew update && brew upgrade # installs libpng 1.6

Bu, oluşturuldukları 1.5'i gerektiren diğer paketlerde bir hataya neden oldu, bu yüzden onu bağladım:

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

Artık farklı paketler için hem uyum içinde hem de yan yana yaşıyorlar. 1.5'e bağlı paketleri yeniden oluşturmak daha iyi olurdu, ancak bu hızlı bir bandaj düzeltmesi olarak çalışıyor.


3

Bu sorunun zaten çözüm veren bir cevabı olduğunu biliyorum. Ama insanların sorunu anlamalarına yardımcı olmak için size iki sentimi vermek istiyorum. Aynı sorunu alarak belirli bir soru oluşturdum . Aynı sorunu yaşıyorum, ancak yalnızca PHPStorm ile. Ve tam olarak editörden test çalıştırmaya çalıştığımda.

dyld dinamik bağlayıcıdır

Dyld'nin /usr/local/lib/libpng15.15.dylib'i aradığını ama / usr / local / lib / dosyamın içinde olmadığını ekledim. Bu klasörde libpng16.16.dylib var.

Bir yorum sayesinde, / usr / bin / php dosyamın php 5.5.8 için bir gösterici olduğunu anladım. Bunun yerine, ... / usr / local / bin / php 5.5.14 idi. PHPStorm, varsayılan yapılandırma olan / usr / bin / php ile çalıştı. Konsol üzerinden php çalıştırdığımda / urs / local / bin / php komutunu çalıştırıyorum.

Yani, ... Eğer bir dyld hatası alırsanız, belki bazı yanlış php yapılandırmanız vardır. Nedeni bu çünkü

$ brew update && brew upgrade
$ brew reinstall php55

Ama bunun neden benim için sorunu çözmediğini bilmiyorum. Belki sahip olduğum için


1

Ayrıca bu sorunu yaşadım ve bu konudaki çözümlerin hiçbiri benim için işe yaramadı. Görünüşe göre, sorun şu satıra sahip olmamdı ~/.bash_profile:

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

Ve ortaya çıktığı gibi /usr/local/php, sadece bir sembolik bağdı /usr/local/Cellar/php54/5.4.24/. Bu yüzden çağırdığımda php -ihala php54'ü çağırıyordum. Bu satırı bash profilimden sildim ve sonra php çalıştı.

Bazı nedenlerden dolayı, php55 şimdi çalışıyor olsa bile php.ini, php54'teki dosya hala yüklenmişti ve php'yi her çalıştırdığımda bu uyarıyı aldım:

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

Bunu düzeltmek için, bash profilime aşağıdaki satırı ekledim:

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

Ve sonra her şey normal şekilde çalıştı!


1

Bu hatayı çözemedim brew update && brew upgrade. Bazı nedenlerden dolayı onu sıfırdan yüklemem gerekiyordu:

$ brew install libpng


1

Bu hatayla çok zorlandım:

Nedeni: Uyumsuz kitaplık sürümü: php, 44.0.0 veya sonraki sürümünü gerektirir, ancak libpng16.16.dylib, 42.0.0 sürümünü sağlar Trace / BPT yakalama: 6

Yukarıdaki her şeyi brew ve çok daha fazlasını yaptım ... ama bu değildi!

Kitaplığınızın nerede olduğunu kontrol edin:

sudo bul / -ismi libpng16.16.dylib

Benim durumumda işte sonuç şu:

  • /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

Bir MAMP kullanıcısı olduğum için , Symfony4 en az 7.1.3 gerektirdiğinden PHP 7.1.0'dan 7.1.8'e ( mevcut son MAMP php ) güncelleme yapmaya çalışırken hatanın ortaya çıktığı ortaya çıktı.

Sonunda MAMP'ın yeni sürümünü kurdum ve çalıştı (4.1'den 4.2'ye). Ancak bunu yaparken dikkatli olun, önce MAMP / htdoc klasörünüzdeki her şeyi yedeklemeniz gerekir. Ayrıca, MAMP / bin / php'de yaşayabilecek özel derlenmiş php sürümünüzün bir yedeğini tutun. (Benim durumumda Oracle sürücüleri ile özel bir PHP sürümüm vardı).

Ayrıca, MAMP php sürümünü CLI php yorumlayıcınız olacak şekilde yapılandırdıysanız, .bash_profile dosyanızdaki PATH'yi güncellemeniz gerekecektir.

Bunun gibi bir şeye benzemeli :

dışa aktar PATH = / Applications / MAMP / bin / php / php7.1.8 / bin: $ PATH

Umarım bu yardımcı olabilir.


0

MAMP'yi güncelledikten sonra bu sorunu yaşadım ve yeni php sürümü nedeniyle ayarladığım özel $ PATH yanlıştı, bu yüzden önce php'nin yanlış sürümü yüklendi ve hatayı tetikleyen o php sürümüydü.

.Bash_profile dosyamdaki yolu güncellemek sorunumu çözdü.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.