it-swarm.asia

dyld: لم يتم تحميل المكتبة: /usr/local/opt/icu4c/lib/libicui18n.62.dylib حدث خطأ أثناء تشغيل php بعد تثبيت عقدة مع brew على Mac

لقد قمت بتثبيت العقدة باستخدام homebrew (Mojave) ، بعد ذلك توقف php عن العمل ، وإذا حاولت تشغيل php -v ، فقد حصلت على هذا الخطأ:

php -v
dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.62.dylib
  Referenced from: /usr/local/bin/php
  Reason: image not found

حاولت إلغاء تثبيت كل من العقدة و icu4c لكن المشكلة لا تزال قائمة

86
petekaner

في حالتي حدث ذلك لأنه تمت ترقية icu4c إلى الإصدار 63 ، لكن صورة postgres المثبتة محليًا لا تزال تشير إلى icu4c 62.1. لذلك اضطررت لتغيير الإصدار icu4c المستخدمة:

 brew switch icu4c 62.1
115
Grey Black

ملاحظة - سيؤدي ذلك إلى ترقية إصدار PHP.

أنا فقط واجهت هذه المشكلة نفسها. ترقية البيرة ثم تنظيف عملت بالنسبة لي. من المحتمل أن هذا الخطأ ظهر لي بسبب عدم التطابق في إصدارات الحزمة. أيا من الحلول المذكورة أعلاه حل خطأي.

brew upgrade

وثم

brew cleanup
103
Jase

تبين أنني ، مثلGrey Black ، كان علي فعلاً تثبيت v62.1 من icu4c. لا شيء آخر يعمل.

ومع ذلك ، brew switch icu4c 62.1 يعمل فقط إذا كنت قد قمت بتثبيت 62.1 في الماضي. إذا لم يكن هناك المزيد من العمل الضيق. Homebrew يقوم لا يجعل من السهل تثبيت الإصدارات السابقة من الصيغ.

إليك كيف فعلت ذلك:

  1. نحتاج أولاً إلى استنساخ عميق لبرو Homebrew. قد يستغرق هذا بعض الوقت: git -C $(brew --repo homebrew/core) fetch --unshallow
  2. brew log icu4c لتعقب التزام يشير إلى 62.1 ؛ 575eb4b هل الحيلة.
  3. cd $(brew --repo homebrew/core)
  4. git checkout 575eb4b -- Formula/icu4c.rb
  5. brew uninstall --ignore-dependencies icu4c
  6. brew install icu4c يجب أن يكون لديك الآن الإصدار الصحيح من التبعية! الآن فقط ل ...
  7. git reset && git checkout . تنظيف وصفتك المعدلة.

وأضاف بضع ملاحظات إضافية ، وذلك بفضلNoah للصيد

30
Leland

واجهت نفس المشكلة بعد ترقية macOS إلى الإصدار 10.13.6. لا يمكنني تشغيل الأوامر composer و php. بعد البحث لفترة من الوقت ومحاولة الحلول المختلفة المنشورة على الإنترنت ، عملت إعادة تثبيت php باستخدام homebrew.

brew reinstall [email protected]

أضيفت في 14 مارس بناءً على تعليق ريان

احصل على الإصدار الذي تستخدمه حاليًا عن طريق تشغيل php -v والحصول على الصيغ الصحيحة (التي يمكنك العثور عليها هنا: https://formulae.brew.sh/formula/php ) لاستبدال @7.1 في الأمر أعلاه.

20
Arun Karnati

فقط brew remove php و brew install php لم يعملا ولم brew reinstall php. كان حلي هو القيام بما يلي:

brew remove php
cd /usr/local/Cellar
rm -rf php/
brew install php
brew doctor
brew cleanup

الآن php -v يعطيني:

PHP 7.3.2 (cli) (built: Feb 14 2019 10:08:45) ( NTS )
2
glajan

تشغيل npm version ومعرفة ما إذا كنت ترى نفس الخطأ.

إذا كان الأمر كذلك ، فقم بترقية إصدار العقدة brew upgrade npm.

==> Upgrading 1 outdated package, with result:
npm 8.1.2 -> 10.3.0
==> Upgrading npm
==> Installing dependencies for node: icu4c
==> Installing node dependency: icu4c

الاعتمادات

2
Lucas Bustamante

نجحت إجابة ليلاند بالنسبة لي ، لكن كان عليّ تغيير الخطوتين 4 و 6 إلى:

4) بوابة الخروج -B icu4c-62.1 575eb4b

6) الشراب إعادة تثبيت Formula/icu4c.rb

0
sgrwg

حصلت على هذا الخطأ أيضًا ، بعد تثبيت php 7.3. لقد قمت بحل ترقية إصدارات php القديمة فقط (5.6 و 7.0 ، وليس من إعادة الشراء الرسمية).

قام المشرفون بتجميع إصدارات php جديدة مقابل icu4c الحالي.

في حالتي ، حصلت PHP 7 على 0.31 إلى 0.33 ، وتم حل المشكلة.

0
David Fernández Rafael

يبدو أنه من المستحيل ربط icu4c باستخدام brew بعد آخر تحديثات OS X. مما يجعل الأمور أكثر إثارة للاهتمام. الحل الوحيد الذي وجدته يعمل لي:

  1. تنزيل وتجميع icu4c 62.1 إلى /usr/local/icu4c/62.1
mkdir ~/sources
cd ~/sources
wget http://download.icu-project.org/files/icu4c/62.1/icu4c-62_1-src.tgz
tar xvzf icu4c-62_1-src.tgz
cd icu/source/

Sudo mkdir /usr/local/icu4c/62.1
./configure --prefix=/usr/local/icu4c/62.1
make
Sudo make install
  1. ارتباطات libs:
ln -s /usr/local/icu4c/62.1/lib/*.dylib /usr/local/include/
  1. قم بتعيين DYLD_LIBRARY_PATH في ~/.bash_profile:
export DYLD_LIBRARY_PATH=/usr/local/include

آمل أن توفر ساعات قليلة من وقتك.

0
Serhey Dolgushev

بدلاً من تثبيت إصدار قديم من icu4c يمكن لـ php الأقدم (المترجمة مسبقًا) الارتباط به ، من الأفضل إعادة ترجمة php القديم لربطه بالمكتبة الحديثة.

brew uninstall [email protected]
brew install --build-from-source [email protected]

سيقوم هذا ببناء php وربطه بالمكتبة الحديثة. لقد وجدت reinstall لم ينجح. اختنق التثبيت الجديد عندما يكون المجلد الوجهة موجودًا بالفعل.

كما فعلت brew link --force [email protected] للبيئة الخاصة بي.

0
Jerry