php dyld: लाइब्रेरी लोड नहीं: मैक पर काढ़ा के साथ नोड स्थापित करने के बाद/usr/local/opt/icu4c/lib/libicui18n.62.dylib त्रुटि चल रही है




node.js macos (10)

मैंने होमब्रेव (Mojave) का उपयोग करके नोड स्थापित किया, बाद में php ने काम करना बंद कर दिया और अगर मैंने php -v को चलाने का प्रयास किया 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 की स्थापना रद्द करने की कोशिश की, लेकिन समस्या बनी रहती है


icu4c का एक पुराना संस्करण स्थापित करने के बजाय, जो पुराने (precompiled) php से लिंक कर सकता है, पुराने php को अधिक नवीनतम लाइब्रेरी से लिंक करने के लिए फिर से जोड़ना बेहतर है।

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

यह php का निर्माण करेगा और इसे नई लाइब्रेरी से लिंक करेगा। मैंने पाया कि reinstall काफी काम नहीं आया; जब गंतव्य फ़ोल्डर पहले से मौजूद था, तो नया इंस्टॉल किया गया।

मैंने अपने परिवेश के लिए भी brew link --force [email protected] किया।


इस त्रुटि को भी, 7.3 php को स्थापित करने के बाद। मैंने इसे अपने पुराने php के संस्करणों (5.6 और 7.0, आधिकारिक रिपॉजिट से नहीं) को अपग्रेड करने का संकल्प लिया था।

अनुरक्षकों ने वर्तमान icu4c के खिलाफ नए php संस्करण संकलित किए थे।

मेरे मामले में, PHP 7 0.31 से 0.33 तक मिला, और समस्या हल हो गई।


@ ग्रे ब्लैक की तरह, मुझे वास्तव में icu4c का v62.1 स्थापित करना पड़ा। और कुछ काम नहीं किया।

हालाँकि, अगर आप अतीत में 62.1 स्थापित कर चुके हैं, तो brew switch icu4c 62.1 ही काम करता है। यदि आपके पास अधिक लेगवर्क शामिल नहीं है। होमब्रेव को पिछले संस्करणों के सूत्रों को स्थापित करना आसान नहीं है ।

यहाँ मैंने यह कैसे किया:

  1. हमें पहले होमब्रे रेपो का एक गहरा क्लोन चाहिए। इसमें कुछ समय लग सकता है: 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 . अपनी संशोधित रेसिपी की सफाई करें।

जोड़े गए कुछ अतिरिक्त नोट्स, पकड़ के लिए @ नोहा को धन्यवाद


बस 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 )

लगता है कि नवीनतम OS X अपडेट के बाद brew का उपयोग करके icu4c लिंक करना असंभव है। जो चीजों को और दिलचस्प बनाता है। एकमात्र समाधान मुझे मेरे लिए काम करते हुए मिला:

  1. डाउनलोड करें और icu4c 62.1 को icu4c संकलित करें
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. लिंक लिबास:
ln -s /usr/local/icu4c/62.1/lib/*.dylib /usr/local/include/
  1. DYLD_LIBRARY_PATH को ~/.bash_profile DYLD_LIBRARY_PATH में सेट करें:
export DYLD_LIBRARY_PATH=/usr/local/include

आशा है कि यह आपके समय के कुछ घंटों को बचाएगा।


मुझे समस्या थी क्योंकि PHP (7.3) के मेरे संस्करण icu4c 63 की उम्मीद कर रहा था और काढ़ा केवल 64 स्थापित करेगा।

https://.com/a/55828190/2000947 ने मुझे 63 स्थापित करने में मदद की।


लेलैंड के जवाब ने मेरे लिए काम किया, लेकिन मुझे चरण 4 और 6 को बदलना पड़ा:

4) git चेकआउट -B icu4c-62.1 575eb4b

6) काढ़ा पुनर्स्थापना फॉर्मूला / icu4c.rb


मेरे मामले में, ऐसा इसलिए हुआ क्योंकि icu4c को 63 संस्करण में अपग्रेड किया गया था, लेकिन मेरी स्थानीय रूप से स्थापित पोस्टग्रेज छवि अभी भी icu4c 62.1 को संदर्भित करती है। इसलिए मुझे इस्तेमाल किए गए icu4c संस्करण को बदलना पड़ा:

 brew info icu4c
 brew switch icu4c <version>

version कहाँ स्थापित संस्करण info द्वारा लौटाया गया है


10.13.6 संस्करण में अपने 10.13.6 को उन्नत करने के बाद मुझे भी यही समस्या थी। मैं composer और php कमांड नहीं चला सकता। कुछ समय तक शोध करने और ऑनलाइन पोस्ट किए गए विभिन्न समाधानों की कोशिश करने के बाद, homebrew का उपयोग करके php को फिर से स्थापित करना काम किया।

brew reinstall [email protected]

14 मार्च को रेयान की टिप्पणी के आधार पर जोड़ा गया

वर्जन प्राप्त करें जो आप वर्तमान में php -v चलाकर उपयोग कर रहे हैं और उपरोक्त कमांड में @7.1 को बदलने के लिए सही सूत्र (जो आप यहां पा सकते हैं: https://formulae.brew.sh/formula/php ) प्राप्त करें।


नोट - यह आपके PHP संस्करण को अपग्रेड करेगा।

मुझे बस यही समस्या थी। Homebrew को अपग्रेड करना और फिर सफाई करना मेरे लिए काम कर गया। पैकेज संस्करणों में बेमेल होने के कारण यह त्रुटि संभवतः मेरे लिए दिखाई दी। उपरोक्त समाधानों में से किसी ने भी मेरी त्रुटि का समाधान नहीं किया।

brew upgrade

सावधानी - यह आपके सभी काढ़ा पैकेज को अपग्रेड करेगा। यदि आप केवल विशिष्ट पैकेज को अपग्रेड करना चाहते हैं, तो सुनिश्चित करें कि यह विशिष्ट है।

brew upgrade {package}

और फिर

brew cleanup




homebrew