dyld: Library tidak dimuat: /usr/local/lib/libpng16.16.dylib dengan semua yang berhubungan dengan php

119

Menggunakan aplikasi php apa pun menghasilkan:

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

Sebagian besar aplikasi php saya diinstal menggunakan homebrew dengan pengecualian komposer (diinstal menggunakan curl)

Saya mencoba menghapus libpng dan menginstal ulang dengan homebrew tidak berhasil.

Selanjutnya adalah beralih ke versi terbaru libpng 1.5 seperti yang dinyatakan dalam pesan kesalahan:

$ 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

Sekarang kesalahan telah berubah menjadi:

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

Saya menjalankan Mavericks (10.9.2) dan PHP 5.5.1.

Terima kasih sebelumnya!

pengguna3458861
sumber

Jawaban:

156

Saya sarankan Anda lari:

$ brew update && brew upgrade

Sampai beberapa menit yang lalu saya mengalami masalah ini juga. Karena saya memiliki versi PHP terbaru, saya menyelesaikannya dengan:

$ brew reinstall php55

Semoga membantu.

Pera Jovic
sumber
Terima kasih, saya mencopot dan menginstal ulang homebrew sepenuhnya tetapi mengingat kembali saya pikir ini akan menjadi opsi yang lebih baik.
pengguna3458861
Saya memiliki masalah yang sama dengan program yang berbeda (rahmat) dan ini memperbaikinya.
mstringer
1
Mungkin membantu: Mungkin saja ImageMagick adalah biang keladinya. Saya memiliki masalah serupa dengan ImageMagick melenyapkan / usr / local / bin / bandingkan yang akan saya bedakan.
phpguru
Saya tidak perlu melakukan upgrade $ brew - tetapi $ brew update dan $ brew instal ulang php53 berfungsi untuk saya.
Thomas Bennett
Peringatan: pemutakhiran akan memperbarui semua rumus (kedaluwarsa) Anda dan mungkin membutuhkan waktu lama!
laffuste
42

Saya mengikuti hal di atas (bagaimanapun juga tidak pernah ada ide buruk untuk tetap up to date dengan minuman) dan masih memiliki masalah yang sama persis:

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

Kemudian temukan cara yang lebih sederhana:

Cari versi libpng Anda di kotak Anda:

# 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

Buat symlink:

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

Coba lagi:

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 setara dengan cari

phpguru
sumber
8
Ngomong-ngomong, mdfind libpng15.15.dylibtidak perlu mencari peretasan
Jure C.
Terima kasih @JureC., Saya tidak mengetahui mdfind. Anda juga dapat menggunakan sudo find / -name libpng15 -print tetapi hasilnya agak bertele-tele.
phpguru
ini adalah satu-satunya hal yang berhasil untuk saya, terima kasih: D
holmeswatson
Ini juga berhasil untuk saya. Masalah yang saya hadapi adalah libpng15 sekarang merupakan versi lama sehingga pembaruan tidak dapat diperbaiki.
bigtunacan
1
Ini adalah satu-satunya solusi yang berhasil untuk saya! Terima kasih!
JLuiz
18

Itu karena tidak ada symlink untuk libpng. Anda perlu menautkan libpng lagi.

brew unlink libpng && brew link libpng

Dan Anda mungkin mendapatkan beberapa kesalahan. Saya memperbaiki kesalahan itu dengan mengoreksi izin. Mungkin karena macports yang dihapus.

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

Buat tautan lagi dan itu akan berhasil.

Jonghee Park
sumber
Di El Capitan, menggunakan homebrew-php, dan ini akhirnya menjadi solusi bagi saya. Selain penautan di atas, saya juga harus menjalankan brew link unixodbc. Tetapi sistem saya memiliki kepemilikan atas paket khusus itu.
justinpage
11

Saya menyelesaikan ini dengan menyalinnya ke direktori yang hilang:

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

brew instal ulang libpng terus instal libpng16, bukan libpng15 jadi saya terpaksa melakukan hal di atas.

pengguna391339
sumber
Ini akan menyebabkan masalah tambahan saat menjalankan 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

Dalam kasus saya itu libjpeg. Yang harus saya lakukan hanyalah berlari brew reinstall libjpegdan semuanya bekerja dengan baik!

saada
sumber
2
Dalam kasus saya itu libpng. brew reinstall libpngmenyelesaikannya
pengguna34812
4

Kalau-kalau ada orang lain yang mengalami masalah ini, saya menyelesaikannya dengan yang berikut

brew update && brew upgrade # installs libpng 1.6

Ini menyebabkan kesalahan dengan paket lain yang membutuhkan 1.5 yang mereka buat, jadi saya menautkannya:

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

Sekarang mereka berdua hidup rukun dan berdampingan untuk paket yang berbeda. Akan lebih baik untuk membangun kembali paket yang bergantung pada 1.5, tetapi ini berfungsi sebagai perbaikan cepat.

Alex
sumber
3

Saya tahu pertanyaan ini sudah memiliki jawaban yang memberikan solusi. Tapi saya ingin memberi Anda dua sen untuk membantu orang memahami masalahnya. Mendapatkan masalah yang sama Saya telah membuat pertanyaan khusus . Saya mendapat masalah yang sama, tetapi hanya dengan PHPStorm. Dan persis ketika saya mencoba menjalankan tes dari editor.

dyld adalah linker dinamis

Saya tahu bahwa dyld sedang mencari /usr/local/lib/libpng15.15.dylib tetapi di dalam / usr / local / lib / saya tidak ada. Di folder itu, saya mendapat libpng16.16.dylib.

Berkat sebuah komentar, saya tidak mengerti bahwa / usr / bin / php saya adalah penunjuk ke php 5.5.8. Sebaliknya, ... / usr / local / bin / php adalah 5.5.14. PHPStorm bekerja dengan / usr / bin / php yang merupakan konfigurasi default. Ketika saya menjalankan php melalui konsol, saya menjalankan / urs / local / bin / php.

Jadi, ... Jika Anda mendapatkan error dyld, mungkin Anda memiliki konfigurasi php yang salah. Itulah alasannya karena

$ brew update && brew upgrade
$ brew reinstall php55

Tapi saya tidak tahu mengapa ini tidak menyelesaikan masalah bagi saya. Mungkin karena saya punya

sensorario
sumber
1

Saya juga mengalami masalah ini, dan tidak ada solusi di utas ini yang berhasil untuk saya. Ternyata, masalahnya adalah saya memiliki baris ini di ~/.bash_profile:

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

Dan ternyata, /usr/local/phpitu hanya symlink ke /usr/local/Cellar/php54/5.4.24/. Jadi ketika saya memanggil php -isaya masih memanggil php54. Saya baru saja menghapus baris ini dari profil bash saya, dan kemudian php berfungsi.

Untuk beberapa alasan, meskipun php55 sekarang berjalan, php.inifile dari php54 masih dimuat, dan saya menerima peringatan ini setiap kali saya memanggil 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

Untuk memperbaikinya, saya baru saja menambahkan baris berikut ke profil bash saya:

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

Dan kemudian semuanya bekerja seperti biasa!

Matt Korostoff
sumber
1

Saya mengalami kesalahan ini yang tidak dapat diselesaikan oleh brew update && brew upgrade. Untuk beberapa alasan saya perlu menginstalnya dari awal:

$ brew install libpng

osowskit
sumber
1

Saya mengalami kesulitan dengan kesalahan ini:

Alasan: Versi pustaka tidak kompatibel: php memerlukan versi 44.0.0 atau yang lebih baru, tetapi libpng16.16.dylib menyediakan versi 42.0.0 Trace / BPT trap: 6

Saya melakukan semua hal di atas dengan minuman dan banyak lagi ... tapi bukan ini!

Periksa di mana perpustakaan Anda:

sudo find / -name libpng16.16.dylib

Dalam kasus saya, inilah hasil yang relevan:

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

Jadi karena saya pengguna MAMP, ternyata kesalahan muncul ketika saya mencoba memperbarui dari PHP 7.1.0 ke 7.1.8 ( php MAMP terakhir yang tersedia ) karena Symfony4 memerlukan setidaknya 7.1.3

Pada akhirnya saya menginstal versi baru MAMP dan berhasil (4.1 hingga 4.2). Namun berhati-hatilah saat Anda melakukan ini, Anda harus mencadangkan terlebih dahulu semua yang ada di folder MAMP / htdoc Anda. Juga simpan cadangan versi php terkompilasi kustom Anda daripada yang dapat hidup di MAMP / bin / php. (Dalam kasus saya, saya memiliki versi PHP khusus dengan driver Oracle).

Juga jika Anda mengkonfigurasi versi php MAMP menjadi CLI php interpreter Anda, Anda harus memperbarui PATH di .bash_profile Anda.

Seharusnya terlihat seperti ini:

ekspor PATH = / Aplikasi / MAMP / bin / php / php7.1.8 / bin: $ PATH

Saya harap ini bisa membantu.

Kaizoku Gambare
sumber
0

Saya mendapat masalah ini setelah memperbarui MAMP, dan $ PATH khusus yang saya tetapkan salah karena versi php baru, jadi versi php yang salah dimuat terlebih dahulu, dan versi php itulah yang memicu kesalahan.

Memperbarui jalur di .bash_profile saya memperbaiki masalah saya.

axxxman
sumber