Saya menginstal node menggunakan homebrew (Mojave), kemudian php berhenti bekerja dan jika saya mencoba menjalankan php -v
saya mendapatkan kesalahan ini:
php -v
dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.62.dylib
Referenced from: /usr/local/bin/php
Reason: image not found
Saya mencoba untuk menghapus kedua node dan icu4c tetapi masalahnya masih ada
Jawaban:
Saya hanya punya masalah yang sama. Meng-upgrade Homebrew dan kemudian membersihkannya bekerja untuk saya. Kesalahan ini kemungkinan muncul untuk saya karena ketidakcocokan dalam versi paket. Tidak ada solusi di atas yang menyelesaikan kesalahan saya, tetapi menjalankan perintah homebrew berikut berhasil.
lalu
sumber
brew upgrade
akan memperbarui semua paket usang buatan Anda, sebagai gantinya, mungkin hanya dilakukanbrew upgrade npm
atau paket tertentu, tidak semua.Dalam kasus saya, itu terjadi karena icu4c ditingkatkan ke versi 63 tetapi gambar postgres saya yang diinstal secara lokal masih merujuk ke icu4c 62.1. Karena itu saya harus mengubah versi icu4c yang digunakan:
Di mana
version
versi yang diinstal dikembalikan olehinfo
sumber
brew list icu4c
menunjukkan file dari/usr/local/Cellar/icu4c/63.1
.brew switch icu4c 63.1
memperbaikinya untukku.brew switch icu4c 63.1
tetapi masih mendapatkan kesalahan yang sama di log, bahkan setelah me-restart postgres. Tidak yakin apa yang harus dilakukan selanjutnya ...brew reinstall postgres
dan itu sepertinya memecahkan masalah sayaicu4c 61.1
.63.1
- tidak menyelesaikan.62.1
- tidak ditemukan.Saya sebenarnya cukup terkejut bahwa solusi ini belum disajikan, dan saya merasa ini adalah solusi termudah.
Pergi ke GitHub, cari versi brewfile yang cocok dengan versi
icu4c
yang Anda butuhkan dan dapatkan versi mentah file (ikuti tautan di atas dan klikView File
kemudianRaw
).Kemudian buat saja instal ulang dari url itu.
Misalnya, versi
62.1
:Misalnya, versi
64.2
:sumber
brew switch icu4c 62.1
tidak berhasil untuk Anda dalam contoh pertama.dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.64.dylib
ini, perbaiki perintah ini:brew reinstall https://raw.githubusercontent.com/Homebrew/homebrew-core/a806a621ed3722fb580a58000fb274a2f2d86a6d/Formula/icu4c.rb
brew reinstall https://raw.githubusercontent.com/Homebrew/homebrew-core/22fb699a417093cd1440857134c530f1e3794f7d/Formula/icu4c.rb
Ternyata saya, seperti @Grey Black, harus benar-benar menginstal v62.1 dari icu4c. Tidak ada yang berhasil.
Namun,
brew switch icu4c 62.1
hanya berfungsi jika Anda telah menginstal 62.1 di masa lalu. Jika Anda belum ada kerja keras yang terlibat. Homebrew tidak membuatnya mudah untuk menginstal versi formula sebelumnya.Begini cara saya melakukannya:
git -C $(brew --repo homebrew/core) fetch --unshallow
brew log icu4c
untuk melacak komit yang merujuk 62.1;575eb4b
lakukan triknya.cd $(brew --repo homebrew/core)
git checkout 575eb4b -- Formula/icu4c.rb
brew uninstall --ignore-dependencies icu4c
brew install icu4c
Anda sekarang harus memiliki versi ketergantungan yang benar! Sekarang hanya untuk ...git reset && git checkout .
Bersihkan resep Anda yang telah dimodifikasi.sumber
brew log icu4c
, hanya ada 3-4 hasil. Tidak ada yang menyebutkan 62.1. Hash yang Anda gunakan di atas juga tidak berfungsi. Sudahkah mereka menghapus 62?git -C (brew --repo homebrew/core) fetch --unshallow
untuk memastikan Anda memiliki riwayat pembuatan bir penuh.icu4c
. Tidak memperbarui, memperbarui minuman bekerja, atau menginstal ulang, menghubungkan kembali, membangun php dari sumber.git checkout bc0c97952453ff6afc146aa3a706e9902aba4300 -- Formula/icu4c.rb
dan kemudianbrew switch 63.1
Saya memiliki masalah yang sama setelah saya memutakhirkan
macOS
ke versi saya10.13.6
. Saya tidak bisa menjalankancomposer
danphp
memerintahkan. Setelah meneliti sebentar dan mencoba berbagai solusi yang diposting online, instal ulang menggunakan phphomebrew
berhasil.brew reinstall [email protected]
Ditambahkan pada 14 Maret berdasarkan komentar Ryan
dapatkan versi yang saat ini Anda gunakan dengan menjalankan
php -v
dan mendapatkan formula yang tepat (yang dapat Anda temukan di sini: https://formulae.brew.sh/formula/php ) untuk mengganti@7.1
dalam perintah di atas.sumber
node
setelah memutakhirkan macOS ke10.14.2
,brew reinstall node
adalah tiket untuk saya jugabrew upgrade
perbaikan untukku.brew reinstall php
mungkin akhirnya menginstal versi yang berbeda dengan yang saat ini. Anda mungkin harus menentukan versi menggunakan[email protected]
php -v
jika php Anda rusak: pecho $PATH
(jika sudahphp
, Anda akan melihat sesuatu seperti ini :)/usr/local/opt/[email protected]/bin
ini adalah salah satu cara untuk mengetahui versi apa yang saat ini sedang digunakan.Jalankan
npm version
dan lihat apakah Anda melihat kesalahan yang sama.Jika demikian, tingkatkan versi npm Anda
brew upgrade npm
.Kredit
sumber
Ini memperbaikinya untuk saya:
sumber
Adil
brew remove php
danbrew install php
tidak bekerja, juga tidakbrew reinstall php
. Solusi saya adalah melakukan:Sekarang
php -v
beri saya:sumber
Sepertinya tidak mungkin untuk ditautkan
icu4c
menggunakanbrew
setelah pembaruan OS X terbaru. Yang membuat segalanya lebih menarik. Satu-satunya solusi yang saya temukan bekerja untuk saya:icu4c
62.1 untuk/usr/local/icu4c/62.1
DYLD_LIBRARY_PATH
dalam~/.bash_profile
:sumber
Di MacOS Mojave, satu-satunya cara saya bisa memperbaikinya adalah dengan
brew upgrade
sumber
Saya mempunyai masalah karena versi PHP saya (7.3) mengharapkan icu4c 63 dan minuman hanya akan menginstal 64.
https://stackoverflow.com/a/55828190/2000947 membantu saya menginstal 63.
sumber
Bagi saya
brew reinstall nodejs
memperbaiki ini - masalah saya adalah dengan menjalankan Elixir / Phoenix sehingga tidak spesifik PHP, saya pikir itu disebabkan olehbrew install postgres
, tetapi menginstal ulang itu tidak membantu. Saya mendapatkannya darinpm
perintah.sumber
brew update && brew upgrade
bekerja untukkusumber
Inilah yang akhirnya berhasil untuk saya.
brew reinstall postgres
Setelah menjalankan perintah di atas, Anda mungkin perlu menjalankan
brew postgresql-upgrade-database
untuk mengakses data Anda sebelumnya.
sumber
Daripada menginstal versi lama
icu4c
yang dapat ditautkan oleh php yang lebih lama (yang sudah dikompilasi), lebih baik mengkompilasi ulang php yang lama untuk menautkan ke pustaka yang lebih baru.Ini akan membangun php dan menautkannya ke perpustakaan yang lebih baru. Saya menemukan
reinstall
tidak cukup bekerja; instalasi baru tersedak ketika folder tujuan sudah ada.Saya juga melakukannya
brew link --force [email protected]
untuk lingkungan saya.sumber
brew switch icu4c 62.1
perintah Gray Black bekerja untukku.Jawaban Leland berhasil untuk saya, tetapi saya harus mengubah langkah 4 dan 6 menjadi:
4) checkout git -B icu4c-62.1 575eb4b
6) buat instal ulang Formula / icu4c.rb
sumber
Untuk menurunkan versi, saya harus mengkompilasi ulang dari sumber (MacOS Mojave)
sumber
saya mengikuti artikel ini di sini dan ini tampaknya menjadi bagian yang hilang dari teka-teki bagi saya:
sumber
Pada OSX 10.15.4 menjalankan
xcode-select --install
memperbaiki masalah untuk saya.sumber
Mendapat kesalahan ini juga, setelah menginstal php 7.3. Saya telah memutuskan untuk memutakhirkan hanya versi php lama saya (5.6 dan 7.0, bukan dari repo resmi).
Pemelihara telah menyusun versi php baru terhadap icu4c saat ini.
Dalam kasus saya, PHP 7 naik dari 0,31 ke 0,33, dan masalahnya selesai.
sumber
Solusi dalam inti ini melakukannya untuk saya
sumber
dalam kasus saya, saya menginstal ulang semua paket yang diinstal dengan Homebrew
Setelah itu, saya mulai menginstal versi yang saya butuhkan
sumber