लाइब्रेरी लोड नहीं: /rr/local/opt/readline/lib/libreadline.6.2.dylib


239

मैंने अभी होमब्रेव के साथ पॉज़रेस्केल स्थापित किया है और जब मैं कमांड टाइप करता हूं

psql

मुझे निम्नलिखित त्रुटि मिलती है:

dyld: Library not loaded: /usr/local/opt/readline/lib/libreadline.6.2.dylib
Referenced from: /usr/local/bin/psql
Reason: image not found
[1]    69711 trace trap  psql

क्या किसी को इस बारे में कोई अंदाजा है कि क्या गलत है?


1
ऐसा लगता है कि यह रीडलाइन से जुड़ा हुआ है, लेकिन यह मौजूद नहीं है। क्या आपने बाद में रीडलाइन की स्थापना रद्द कर दी थी? होमग्रॉ के साथ आपने वास्तव में PostgreSQL कैसे स्थापित किया? (कदम, कमांड)।
क्रेग रिंगर

1
संभावना से हल stackoverflow.com/questions/42356309/... जो नीचे की तुलना में सबसे अधिक संक्षिप्त उत्तर है (आप शायद postgres पुनर्स्थापित करने के लिए की जरूरत नहीं है!)
thclark

जवाबों:


373

मुझे ठीक वैसी ही त्रुटि मिल रही थी, लेकिन उपरोक्त उत्तर मेरे लिए कारगर नहीं थे। मुझे postgresql को फिर से स्थापित करना पड़ा।

brew reinstall postgresql


5
इसने मेरे लिए एल कैपिटन
सेबस्टियन सस्त्रे

6
मेरे मुद्दे को लगता है कि
पीथॉन

6
यदि आप पहले से ही पोस्टग्रेज के नवीनतम संस्करण पर नहीं हैं, तो ऐसा करने से सावधान रहें। आपको नए पोस्ट के साथ पुराने पोस्टग्रेज को फिर से स्थापित करना होगा और फिर pg_upgrade
बजे

7
यदि आप अपने स्थानीय डेटाबेस को खोना नहीं चाहते हैं तो यह बहुत भारी है। मुझे 'काढ़ा स्विच रीडलाइन 6.3.8' के साथ किस्मत मिली थी
क्रिस्टोफर जॉनसन

4
यदि आपको लगता है कि psql को फिर से स्थापित करना एक छोटे बग की तरह लगता है, तो आप अकेले नहीं हैं। यह उत्तर: stackoverflow.com/a/41476592/839876 वास्तविक समस्या को संबोधित करता प्रतीत होता है कि इनमें से अधिकांश उत्तर चारों ओर काम करते हैं।
1945 में frandroid

127

मुख्य समस्या यह है कि आपका पोस्टग्रैस्कल खोजने की कोशिश कर रहा था, libreadline.6.2.dylibलेकिन आपका readlineसंस्करण संस्करण है 7.0, इसलिए केवल 7 का ही लिंक जुड़ा हुआ है।

मुझे नहीं लगता कि पोस्टग्रैस्कल को अपग्रेड करना एक अच्छा विचार है, यह आसान नहीं है और बहुत समस्या पैदा कर सकता है, खासकर जब आपके पास पहले से ही डेटाबेस डेटा है।

मैं क्या करता हूं, के संस्करण को स्विच करना है readline। जब आप जांच करते हैं brew info readline, तो आपको विभिन्न संस्करण मिलेंगे, मेरा है 6.3.8, इसलिए मैं निष्पादित करके उस संस्करण पर स्विच करता हूं:

$ brew switch readline 6.3.8

यह 6.3.8 में बदल जाएगा और लिंक बनाएगा:

Cleaning /usr/local/Cellar/readline/6.3.8
Cleaning /usr/local/Cellar/readline/7.0.1
Opt link created for /usr/local/Cellar/readline/6.3.8

इस स्थिति में, सभी लिंक किए गए काम 6 संस्करण में हो जाते हैं, और कमांड लाइन काम करती है:

$ ls /usr/local/opt/readline/lib/
libhistory.6.2.dylib    libhistory.dylib    libreadline.a
libhistory.6.3.dylib    libreadline.6.2.dylib   libreadline.dylib
libhistory.6.dylib  libreadline.6.3.dylib
libhistory.a        libreadline.6.dylib

हालाँकि, यदि आपके पास रीडलाइन के विभिन्न संस्करण का उपयोग करने वाले अलग-अलग ऐप हैं, तो मुझे लगता है कि आपको अपग्रेड करने पर विचार करना चाहिए।


अपडेट: 06/02/2019

यदि पुराना संस्करण स्थापित नहीं है तो क्या होगा?

Homebrewपुराने संस्करण सूत्र को स्थापित करने का तरीका प्रदान नहीं करता है। और v2.0.0 के बाद से, यह brew cleanupहर 30 दिनों में डिफ़ॉल्ट व्यवहार के रूप में चलेगा । इसलिए, आप गलती brewसे पुराने संस्करण को अपडेट और हटा सकते हैं ।

यहां पुराने संस्करण को स्थापित करने के चरण दिए गए हैं:

  1. homebrew-coreनिर्देशिका पर जाएं :
    $ cd $(brew --repository)/Library/Taps/homebrew/homebrew-core
  1. पुराने फॉर्मूला के लिए हैश की जाँच करें:
    $ git log master -- Formula/readline.rb
  1. हैश मान के संगत संस्करण का पता लगाएं
    commit 1dd4221c35716d6bec363ad3425ef93ffe7d9b9f
    Author: BrewTestBot <brew-test-bot@googlegroups.com>
    Date:   Wed Aug 15 21:51:16 2018 +0000

        readline: update 7.0.5 bottle.
  1. पुराने फॉर्मूले की जाँच करें:
    $ git checkout 1dd4221c35716d6bec363ad3425ef93ffe7d9b9f Formula/readline.rb
  1. सूत्र को पुनर्स्थापित करें:
    $ brew reinstall readline
  1. रेपो को रीसेट करें

उन चरणों का पालन करते हुए, आप सूत्र के पुराने संस्करण को पुनर्स्थापित कर सकते हैं।


1
और मुझे - अगर आपके पास रीडलाइन 7 पर कोई अन्य निर्भरता नहीं है, तो यह निश्चित रूप से सबसे कम विघटनकारी दृष्टिकोण है।
आकर्षित किया

इसने मेरे लिए भी काम किया, मुझे अपडेट करने से बचाया
रिच

मेरे लिए भी काम किया ... पूरे
डेटाब को

जब कोई उस के अन्य संस्करण को वापस स्विच करना चाहेगा तो वह readlineकैसे स्थापित किया जाएगा? ऐसा करने के लिए और क्या डाउनसाइड हैं?
केनी एविट

मेरे पास केवल एक रीडलाइन स्थापित है, और रीडलाइन के मेरे स्थानीय चेकआउट में केवल 8.0 है, और लॉग में सब कुछ लाने के बाद भी कोई पुराना संस्करण नहीं है। ऐसा लगता है कि मेरे लिए रीडलाइन का एक पुराना संस्करण स्थापित करना असंभव है, और पोस्टग्रेज को अपग्रेड करना एकमात्र विकल्प हो सकता है
एंडी रे

78

यदि स्थिति है तो आपके पास एक उच्च संस्करण रीडलाइन है 7.0। तुम यह केर सकते हो

cd /usr/local/opt/readline/lib    
ln libreadline.7.0.dylib libreadline.6.2.dylib

5
मुझे "libreadline.6.dylib" नाम से लिंक बनाना था, लेकिन यह एकमात्र सुझाव था जिसने मेरे लिए काम किया।
Mads Hoel

1
इस संयोजन के साथ brew uninstall --force gawkऔर फिर brew install gawkमुझे क्या मिला और चल रहा था। तुम भी बस में सक्षम हो सकते हैंbrew reinstall --force gawk
Csteele5

1
अच्छा था। मैं 10.6 पोस्टग्रेज चला रहा हूं, जो libreadline.7.dylib की अपेक्षा करता है, लेकिन मैंने अभी स्थापित किया था pg_topजिसने libreadline को 8.0 पर अपग्रेड किया और psql को तोड़ दिया। मैंने आपकी चाल का उपयोग किया, सिवाय इसके कि इसे सिम्कलिन बना दिया ln -s libreadline.8.0.dylib libreadline.7.dylib
दावोस

उत्कृष्ट धन्यवाद। यह MacOS Mojave पर पोस्टग्रेक्यूएल की स्थापना रद्द करने और फिर से स्थापित करने के लिए काम करता है (जो एक वास्तविक दर्द होता है)।
क्रैम्पिको

46

यदि आपके पास रीडलाइन स्थापित नहीं है, तो पहले इसे स्थापित करें:

brew install readline

मेरे लिए, मुझे यह त्रुटि मिल रही थी, भले ही मैंने रीडलाइन स्थापित की थी। रीडलाइन को पुनर्स्थापित करने ने किया चाल:

brew reinstall readline

6
पुनर्स्थापना रीडलाइन ने मेरे लिए ऐसा नहीं किया, लेकिन स्थापना रद्द / स्थापित bashकिया:brew install --build-from-source bash
व्हाटबर्ड

मैंने पाया कि मुझे पहले रीडलाइन के सभी वेसन को हटाना था (ब्रू अनइंस्टॉल --फोर्स रीडलाइन)। इसे पुनः स्थापित करने के बाद, मुझे इसे "काढ़ा लिंक --फोर्स रीडलाइन" के साथ लिंक करने के लिए मजबूर करना पड़ा
विल्हेम

बैश को रीइंस्टॉल करना मेरे लिए भी ठीक था, लेकिन मेरे मामले में "संदर्भित" लाइन से विशेष रूप से बैश का उल्लेख किया गया था।
mbafford

मैकओएस सिएरा को स्थापित करने के बाद, मैं इस मुद्दे का सामना कर रहा था। मैंने दोनों brew reinstall readline(सिएरा-विशिष्ट काढ़ा प्राप्त करने के लिए) और उस समय किया brew reinstall postgresql94। लोगों ने बैश को फिर से स्थापित करने के लिए कहा, लेकिन मेरे पास इसे शुरू करने के लिए कभी नहीं था। तो इस जवाब और चुने हुए जवाब दोनों ने मेरे लिए काम किया।
रिसा_रसा

अन्य संस्करणों (जो कि पूर्व में काम कर चुका है) के बाद psql9.6 में अपग्रेड करने के बाद अब काम नहीं किया है, के लिए काढ़ा पुनर्स्थापना रीडलाइन ने मेरे लिए काम किया
bkunzi01

31

इसने मेरे लिए काम किया

brew switch readline

यह आपके द्वारा इंस्टॉल किए गए संस्करणों को प्रदर्शित करेगा। उनमें से एक उठाओ। मैंने 7.0.5 उठाया

मैं फिर भागा

brew switch readline 7.0.5

रीडलाइन संस्करण अपडेट हो गया, और psqlआसानी से चला गया।


2
मेरे लिए भी काम किया। psql लोड करने की कोशिश कर libreadline.7.dylibरहा था, लेकिन मैं 8.0.0 रीडलाइन का उपयोग कर रहा था। 8.0.0 से 7.0.5 तक स्विच करने से समस्या हल हो गई। मैं उम्मीद करता हूं कि अगर हम 8.0.0 पर बने रहना चाहते हैं तो सिम्लिंक बनाना (जैसा कि दूसरों ने किया है) भी काम करेगा। लेकिन एक पुराने संस्करण के लिए एक नया संस्करण लिंक भ्रामक है और संभवतः अन्य मुद्दों का कारण बन सकता है।
डेनिस

आपको यह समाधान कैसे मिला? मैं बहुत प्रभावित हूँ!
कुजडू २१'१

1
मैंने वही कोशिश की, लेकिन निम्न त्रुटि मिली: सेलर में रीडलाइन का एक संस्करण "7.0.5" नहीं है। मैंने I.०.५ रीडलाइन स्थापित करने की कोशिश की, लेकिन यह निम्न त्रुटि दिखाता है: "".०.५" नाम के साथ कोई उपलब्ध सूत्र नहीं। @ डेनिस
महेश

23

यह मेरे लिए काम किया

ln -s /usr/local/opt/readline/lib/libreadline.7.0.dylib /usr/local/opt/readline/lib/libreadline.6.dylib

यह मेरी समस्या भी थी। मैंने काढ़ा का उपयोग नहीं किया था और नवीनतम अपडेट के बाद सिम लिंक गायब था। धन्यवाद!
मैट

अच्छा! मेरी सटीक त्रुटि के बारे में 6.2 शिकायत की, मेरी आज्ञा थोड़ी अलग है। त्रुटि थी dyld: Library not loaded: /usr/local/opt/readline/lib/libreadline.6.2.dylib, इसलिए मैंने उपयोग किया ln -s /usr/local/opt/readline/lib/libreadline.7.0.dylib /usr/local/opt/readline/lib/libreadline.6.2.dylib
टायलर कोलियर

20

इसका समाधान फिर से रीडलाइन को जोड़ने के लिए बाध्य करना है।

brew remove readline
brew install readline
brew link readline --force

relink ने मेरे लिए काम नहीं किया, लेकिन पोस्टग्रैसेकल को फिर से स्थापित करना काम किया।
कॉन्स्टेंटिन तिखोनोव

14

यह मुझे लगता है कि समस्या रीडलाइन पैकेज के बारे में है। मेरे मामले में /usr/local/opt/readline/lib/libreadline.7.dylib का उपयोग करने का प्रयास करता है। इसलिए मैंने अभी-अभी लाइब्रेरी /usr/local/opt/readline/lib/libreadline.8.dylib के मौजूदा वर्जन के लिए एक सिमलिंक बनाया है।

मेरे लिए काम किया:

ln -s /usr/local/opt/readline/lib/libreadline.8.dylib /usr/local/opt/readline/lib/libreadline.7.dylib

इसने मेरे लिए काम किया। मैं psql के संस्करण 9.6.3 और रीडलाइन 8. पर हूँ
लैकोस्टेनकोडर

इस समस्या को ठीक करने के बारे में जाने के लिए यह एक हैक करने का तरीका है, लेकिन कुछ असंबंधित अपग्रेड के बाद 7 से 8 तक मेरे रीडलाइन संस्करण को धकेलने के बाद मैं इस समस्या में चल रहा था, और एक पूर्ण पोस्टग्रेज को फिर से स्थापित करना कुछ ऐसा नहीं था जिसे मैं अभी निपटना चाहता था। यह एक छोटा पदचिह्न समाधान है और रीडलाइन में कुछ प्रभावशाली परिवर्तन का जोखिम छोटा लगता है, इसलिए मैं अभी इसके लिए जा रहा हूं और आगे बढ़ रहा हूं। रिपोर्ट करेगा यदि यह लाइन के नीचे किसी भी मुद्दे का कारण बनता है।
स्कॉट रोथ

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

8

उन समाधानों में से कोई भी मेरे लिए काम नहीं करता था; मुझे दौड़ना पड़ा:

brew upgrade bash

से: https://github.com/Homebrew/homebrew-core/issues/5799


मेरे एल कैपिटन में 10.11.6 में अपग्रेड करने के बाद यह त्रुटि हर बार खुली टर्मिनल ऐप के लिए मिली, जो पहले से ही बैश को अपग्रेड करके हल की गई थी
azul

6

ऊपर दिया गया जवाब मेरे लिए काम नहीं करता था इसलिए मैं पोस्ट करना चाहता था कि आखिरकार क्या काम किया। एक धागे के आधार पर , जो मुझे यहां मिला , मुझे रीडलाइन को अनइंस्टॉल करना पड़ा और इसे फिर से स्थापित करना चाहिए लेकिन स्रोत से।

brew uninstall readline
brew install --build-from-source readline

इसके बाद psql त्रुटि चली गई।


5

मेरे पास यह मुद्दा था, और मेरे लिए कुंजी reinstallदोनों readlineऔर थी postgres। एक बार पोस्टग्रेज को पुन: स्थापित करने के बाद, समस्या हल हो गई थी।


5

brew upgrade postgresqlPsql को ठीक करने का एक और तरीका है अपडेट postgresql बस चल रहा है क्योंकि नवीनतम संस्करण रीडलाइन 7 संस्करण का उपयोग करेगा।


4

मुझे यह समस्या तब हुई जब मैंने दुर्घटना के समय 7 से रीडलाइन अपडेट की। मैंने रीडलाइन को अनइंस्टॉल कर दिया और मुझे याद दिलाया कि 6.3.8 अभी भी स्थापित है। ऐसा लगता है कि वर्जन 7 फिलहाल PSQL के साथ काम नहीं कर रहा है।


4

मैंने इन सभी टर्मिनल कमांड की कोशिश की और कुछ भी काम नहीं किया इसलिए इसे मैन्युअल रूप से ठीक करने का फैसला किया।

खोजक खोलें और हिट कमांड + शिफ्ट + जी

Go to this folder /usr/local/opt/readline/lib/

आपको इन फ़ाइलों के कई संस्करणों को देखना चाहिए

libreadline.6.dylib
libreadline.7.0.dylib

जो भी पुस्तकालय लोड नहीं है, उनमें से किसी का भी नाम बदलें

this is: /usr/local/opt/readline/lib/libreadline.6.2.dylib
mine was: /usr/local/opt/readline/lib/libreadline.6.dylib

मेरे लिए अच्छी तरह से काम करता है
mike_dz

3

मैंने सभी पूर्वावलोकन उत्तरों की कोशिश की, और कुछ भी काम नहीं किया। केवल एक चीज जो वास्तव में मेरे लिए काम करती थी:

brew link postgresql


2

इसने मेरी मदद की थी: सभी रीडलाइन और पोस्टग्रैक्स्ल की स्थापना रद्द करें

निर्यात CPPFLAGS = -I / usr / स्थानीय / ऑप्ट / रीडलाइन / निर्यात में LDFLAGS = -L / usr / स्थानीय / ऑप्ट / रीडलाइन / lib शामिल हैं

और posqtgresql स्थापित करें




0

आप कोशिश कर सकते हैं brew doctorऔर देखें कि यह क्या कहता है।

संभवतः आप सभी की जरूरत है brew link --overwrite bash

मेरे लिए, मैंने अभी-अभी ब्रुफ़ को अपग्रेड किया है, क्योंकि OS X EL कैपिटान में कुछ सिक्योरिटी अपग्रेड थे जो मेरे /usrफोल्डर को प्रभावित करते हैं । काढ़ा उन्नयन के दौरान, बैश लिंक टूट गया है, और यही brew doctorमुझे बताता है।

इसलिए मैं सिर्फ दौड़ता हूं brew link --overwrite bashऔर सब कुछ ठीक है।


0

यदि आप किसी और चीज़ से सहानुभूति रखते हैं, तो आप जांचना चाहते हैं postgresql। मैं पहले postgres93 पैकेज से जुड़ा था , जो कि मई '17 के अनुसार असमर्थित है और हटा दिया गया है। उस लिंक को हटाना और फिर मेरे लिए राहत देने का काम किया:

brew unlink postgresql93
brew link postgresql

0

मेरे मामले में सही उत्तर ने समस्या को ठीक नहीं किया।

मेरे ~ / .zshrc फ़ाइल को चलाने brew doctorऔर जोड़ने के बाद समस्या शुरू हुई export PATH="/usr/local/bin:$PATH"

निकाला जा रहा है

export PATH="/usr/local/bin:$PATH" 

से ~/.zshrcइसे हल किया गया।


0

किसी अज्ञात कारण से, जब यह त्रुटि Readline के अगले संस्करण के लिए पॉप अप हुई, तो मेरा RVM सही पता लगाने में असमर्थ रहा कि कोई फर्क नहीं पड़ता कि मैंने इसे कैसे सहानुभूति दी, फेंक दिया:

Library not loaded: /usr/local/opt/readline/lib/libreadline.7.dylib (LoadError)

मैंने rb-readlineअपने जेमफाइल में मणि जोड़कर एक bundle installऔर काम किया और यह काम करने लगा।

मैं ... अभी पता नहीं।

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