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


279

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


क्या आपने भी Homebrew से php स्थापित किया है? क्या आपने php को पुन: स्थापित करने का प्रयास किया?
ओरतोमला लोकनी

1
पोस्टरिटी के लिए: यार्न / नोड को अनइंस्टॉल / रीइंस्टॉल करने का लगता है।
नथानिएल फोर्ड

12
मेरी समझ के अनुसार, यह तब होता है जब आप संस्करण निर्भरता को मिसमैच करते हैं। मेरे मामले में, "काढ़ा उन्नयन" कमांड ने मेरे मुद्दों को तय किया। कृपया मुझे सही करें, अगर मैं किसी भी तरह से गलत हूं।
14:62 पर sh6210

जवाबों:


386

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

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

brew upgrade

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

brew upgrade // for upgrading all packages -- this is the command I used

brew upgrade {package} // for upgrading a specific package

और फिर

brew cleanup

40
यही कारण है कि था ... आसान
एलन

7
मुझे लगता है कि यह उन लोगों के लिए एक अच्छा विचार नहीं है जिनके पास मेरे जैसे PHP के दो संस्करणों के साथ पर्यावरण है। इसके अलावा, काढ़ा अपग्रेड आपके PHP संस्करण को अपग्रेड करेगा और यह आवश्यक नहीं है कि आपका लक्ष्य आपके पीएचपी को अपग्रेड करना नहीं है, लेकिन लाइब्रेरी त्रुटि को हल करना है।
म्पलेटो

1
यह सबसे अच्छा समाधान है जिसे मैंने अब तक आज़माया है, चयनित उत्तर काम नहीं किया
एलेओ इंडोंग

5
मैं ऐसा नहीं brew upgradeकरूंगा क्योंकि आपके सभी काढ़े पुराने पैकेजों को अपग्रेड करेंगे , इसके बजाय, शायद केवल brew upgrade npmया एक विशिष्ट पैकेज ही होगा, सभी नहीं।
xgMz

2
@xgMz आप इस बारे में सही हैं। मेरे लिए, मुझे परवाह नहीं थी अगर मैं अपने सभी पैकेजों को अपडेट कर रहा था, लेकिन किसी ऐसे व्यक्ति के लिए जो नहीं करना चाहता है, तो वह महान नहीं है। मैंने अपने समाधान में एक नोट जोड़ा। धन्यवाद!
विम डीजल

278

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

 brew info icu4c
 brew switch icu4c <version>

versionइंस्टॉल किया गया संस्करण कहां से लौटा हैinfo


1
ठीक ऐसा ही मेरे साथ भी हुआ और आपने मुझे सही रास्ते पर ले लिया। इस दृष्टिकोण के लिए मुख्य चेतावनी यह है कि आपको पहले इस संस्करण को स्थापित करना होगा। मैंने अपने उत्तर में इसके चारों ओर काम किया
लैन्डल

19
मेरे पास 62.1 स्थापित नहीं था। brew list icu4cसे एक फाइल दिखाई /usr/local/Cellar/icu4c/63.1brew switch icu4c 63.1यह मेरे लिए तय है।
स्टीवन एन्सलेन

3
मुझे यह पृष्ठ मेरे पोस्टग्रेज लॉग में त्रुटि मिलने के बाद मिला। मैंने भी कोशिश की brew switch icu4c 63.1लेकिन अभी भी लॉग्स में वही त्रुटि हो रही है, पोस्टग्रेज को रीस्टार्ट करने के बाद भी। यकीन नहीं होता कि आगे क्या करना है ...
एंड्रयू

27
मैंने दौड़ना समाप्त कर दिया brew reinstall postgresऔर मेरी समस्याओं को हल करने के लिए लग रहा था
एंड्रयू

1
स्विच करने में मदद करता है icu4c 61.163.1- हल नहीं। 62.1- नहीं मिला।
पावेल पेत्रोविच

81

मैं वास्तव में काफी हैरान हूं कि यह समाधान अभी तक प्रस्तुत नहीं किया गया है, और मुझे लगता है कि यह सबसे आसान समाधान है।

GitHub पर जाएं, उस ब्रुफ़ाइल के संस्करण को ढूंढें जो उस संस्करण से मेल खाता है icu4cजिसे आपको ज़रूरत है और फ़ाइल का कच्चा संस्करण प्राप्त करें (ऊपर दिए गए लिंक का पालन करें और View Fileफिर क्लिक करें Raw)।

तो बस उस यूआरएल से काढ़ा पुनर्स्थापित करें।

उदाहरण के लिए, संस्करण 62.1:

brew reinstall https://raw.githubusercontent.com/Homebrew/homebrew-core/575eb4bbef683551e19f329f60456b13a558132f/Formula/icu4c.rb

उदाहरण के लिए, संस्करण 64.2:

brew reinstall https://raw.githubusercontent.com/Homebrew/homebrew-core/a806a621ed3722fb580a58000fb274a2f2d86a6d/Formula/icu4c.rb

2
आप एक जीवन रक्षक हैं!
ब्रैड केंट

1
यह वास्तव में सबसे अच्छा समाधान है अगर, brew switch icu4c 62.1पहली बार में आपके लिए काम नहीं करता है।
सब्रप्रसांत

1
यह केवल एक चीज है जिसने एनपीएम को ठीक करने की कोशिश करने के घंटों के बाद मेरे लिए काम किया। धन्यवाद!
गलफिशर

18
बढ़िया काम किया! त्रुटि को ठीक करने के लिए dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.64.dylibइस कमांड ने इसे निर्धारित किया:brew reinstall https://raw.githubusercontent.com/Homebrew/homebrew-core/a806a621ed3722fb580a58000fb274a2f2d86a6d/Formula/icu4c.rb
जॉन केरी

2
Icu4c 66 के लिए :brew reinstall https://raw.githubusercontent.com/Homebrew/homebrew-core/22fb699a417093cd1440857134c530f1e3794f7d/Formula/icu4c.rb
मैग्नस डब्ल्यू

70

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

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

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

  1. हमें पहले होमब्रे रेपो के गहरे क्लोन की जरूरत है। इसमें थोड़ा सा समय लग सकता है:git -C $(brew --repo homebrew/core) fetch --unshallow
  2. brew log icu4c62.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 log icu4c, तो केवल 3-4 परिणाम होते हैं। 62.1 का उल्लेख नहीं। आपके द्वारा ऊपर उपयोग किया गया हैश या तो काम नहीं करता है। क्या उन्होंने 62 को हटा दिया है?
नूह

2
आपको पहले git -C (brew --repo homebrew/core) fetch --unshallowयह सुनिश्चित करने के लिए करना चाहिए कि आपके पास एक पूर्ण काढ़ा इतिहास है।
नूह

44
यार्न अपग्रेड के लिए इतना नाटक।
एरिक वॉकर

4
यह वहाँ एकमात्र समाधान है जो मेरे लिए काम करता है, धन्यवाद! मेरे मामले में समस्या ffmpeg पैकेज थी, जो मुझे लगता है, के नए संस्करण को स्थापित किया icu4c। न तो अद्यतन करना, अपग्रेड किए गए काढ़ा काम करना, न ही पुनर्स्थापना करना, relinking, स्रोत से php का निर्माण करना।
gedijedi

5
मेरे मामले में मुझे icu4c v63 की आवश्यकता है, इसलिए चेकआउट के लिए संबंधित प्रतिबद्धता bc0c97952453ff6afc146aa3a706e9902aba4300 है । Git कमांड है git checkout bc0c97952453ff6afc146aa3a706e9902aba4300 -- Formula/icu4c.rbऔर फिरbrew switch 63.1
nahuelhds

39

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

brew reinstall php@7.1

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

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


8
मैं एक ही त्रुटि के लिए node10.14.2brew reinstall node
macOS

मुझे ब्रू के साथ एक नया पैकेज स्थापित करने के बाद यह त्रुटि मिलनी शुरू हुई। brew upgradeमेरे लिए यह तय करना ।
समुराई जैक

1
brew reinstall phpवर्तमान में एक अलग संस्करण स्थापित करने का अंत हो सकता है। आप का उपयोग संस्करण निर्दिष्ट करने के लिए हो सकता हैphp@7.1
रयान

3
php -vयदि आपका php टूट गया है तो आप वर्तमान संस्करण प्राप्त नहीं कर सकते हैं : p
gingerCodeNinja

1
@gingerCodeNinja यह सच है, शायद यह मदद कर सकता है: मैक ओएस के लिए, टर्मिनल पर जाएं और चलाएं echo $PATH(यदि आपके पास है php, तो आपको कुछ इस तरह से देखना चाहिए :) यह /usr/local/opt/php@7.2/binपता लगाने का एक तरीका है कि वर्तमान में किन संस्करणों का उपयोग किया जा रहा है।
अरुण कर्णती

33

Daud npm version और देखें कि क्या आपको वही त्रुटि दिखाई देती है।

यदि हां, तो अपने npm संस्करण को अपग्रेड करें 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

क्रेडिट


15

यह मेरे लिए यह तय:

brew upgrade node

1
यह मेरे लिए भी काम किया। मैंने पूरी तरह से इसकी जांच कभी नहीं की, लेकिन मेरा मानना ​​है कि ब्रूफ़ ने केवल नोड्स को अपग्रेड करते समय निर्भरता तय की है। यह काढ़ा उन्नयन की तुलना में बहुत अधिक निहित महसूस किया।
hendrikbeck

1
इसी तरह का मामला लगता है,> 'काढ़ा पुनर्स्थापना नोड' ने कैटालिना पर स्विच करने के बाद मेरी मदद की
greencrest

9

सिर्फ 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 )

5

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

  1. डाउनलोड करें और icu4c62.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. लिंक लिबास:
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

1
मैं PHP 7.1 चला रहा हूं और यही एकमात्र चीज थी जो मेरे लिए काम करती थी।
वेबटाइगर

मेरे मामले में मैं 64.2 संस्करण की जरूरत है, तो मैं से डाउनलोड github.com/unicode-org/icu/releases/download/release-64-2/...
RafaelQm


2

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

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


1
थोड़ी देर खोज करने के बाद, इसने मेरी मदद की। धन्यवाद
jarchuleta

2

मेरे लिए brew reinstall nodejsयह तय है - मेरा मुद्दा एलिक्सिर / फीनिक्स चलाने के साथ था इसलिए पीएचपी विशिष्ट नहीं है, मुझे लगता है कि यह कारण था brew install postgres, लेकिन पुनः स्थापित करने से मुझे मदद नहीं मिली। मैं इसे npmआज्ञाओं से प्राप्त कर रहा था ।


2

brew update && brew upgrade मेरे लिए काम किया


एसओ में आपका स्वागत है! आपका सहयोग स्वागत योग्य है। इस मामले में, 15 और प्रश्न हैं, इसलिए आप के पेशेवरों को दिखाने के लिए यह एक अच्छा बिंदु होगा।
डेविड गार्सिया बोडेगो

1

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

brew uninstall php@7.2
brew install --build-from-source php@7.2

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

मैंने brew link --force php@7.2अपने पर्यावरण के लिए भी किया ।


इसकी कोशिश की गई लेकिन कोई सुधार नहीं हुआ; ग्रे ब्लैक brew switch icu4c 62.1कमांड ने मेरे लिए काम किया।
जेमी बर्च

1

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

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

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


1

डाउनग्रेड करने के लिए, मुझे स्रोत (MacOS Mojave) से पुनर्मिलन करना पड़ा

$ wget https://ssl.icu-project.org/files/icu4c/62.1/icu4c-62_1-src.tgz
$ tar xvfz icu4c-62_1-src.tgz
$ cd icu/sources
$ ./configure
$ make
$ make install



1

यही मेरे लिए आखिरकार काम आया।

brew reinstall postgres

उपरोक्त आदेश को चलाने के बाद आपको चलाने की आवश्यकता हो सकती है

brew postgresql-upgrade-database

अपने पिछले डेटा तक पहुँचने के लिए।


सब से ऊपर की कोशिश करने के बाद, केवल इसने मेरे लिए काम किया।
कृपालु सर

0

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

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

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


क्या यह अन्य उत्तरों द्वारा कवर नहीं किया गया है?
ट्रांसजेंसी के लिए जेजे और

आईएमओ, नहीं। एक जवाब recompiling के बारे में बात करता है, और मुझे जो करना है वह "अपडेट" है।
डेविड फर्नांडीज राफेल

मुझे यह त्रुटि एक अनौपचारिक रेपो से अपग्रेड करने के बाद भी मिली लेकिन ब्रू अपग्रेड नोड ने इसे ठीक कर दिया।
user3685048


-1

मेरे मामले में, मैं Homebrew के साथ स्थापित सभी संकुल को पुनः स्थापित करता हूँ

$ brew list | xargs brew reinstall

उसके बाद, मैं अपना संस्करण स्थापित करना शुरू कर देता हूं जिसकी मुझे आवश्यकता है

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.