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


112

जब मैं चलाने की कोशिश करता हूं तो मुझे rails consoleयह त्रुटि मिलती है:

/Users/TuzsNewMacBook/.rvm/gems/ruby-2.3.7/gems/bootsnap-1.3.2/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:21:in `require':
 dlopen(/Users/TuzsNewMacBook/.rvm/rubies/ruby-2.3.7/lib/ruby/2.3.0/x86_64-darwin18/readline.bundle, 9): 
Library not loaded: /usr/local/opt/readline/lib/libreadline.7.dylib (LoadError)

एक त्वरित खोज मुझे इस पोस्ट में मिली और मैंने कुछ चीजें आजमाई:

brew reinstall postgresql (यह वास्तव में इस परियोजना के लिए डीबी है)

तथा

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

(रीडलाइन का मेरा संस्करण 8 है)

तथा brew link readline --force

लेकिन इनमें से किसी ने भी इसे तय नहीं किया है।

मैं हाल ही में जोड़ा pry-coolline, guardऔर guard-livereloadअपने प्रोजेक्ट के लिए जवाहरात अगर है कि किसी भी फर्क नहीं पड़ता (उन से पहले सांत्वना भरी हुई ठीक रेल)। मैं नवीनतम macos पर चल रहा हूँ।

(अपडेट) मैं अपने रेल कंसोल के रूप में प्राइ रेल का उपयोग कर रहा हूं, अगर इससे कोई फर्क पड़ता है।

कोई मदद? धन्यवाद।


1
कोशिश करेंbrew reinstall readline
मृदयोशी

काम नहीं किया, धन्यवाद
जोनाथन तुज़मैन

मेरे लिए काम किया @MrYoshiji! धन्यवाद!
spons

जवाबों:


374

खोज के दौरान त्रुटि को फेंक दिया गया लगता है /usr/local/opt/readline/lib/libreadline.7.dylib

क्या आपने सहानुभूति रखने की कोशिश की है?

तो कुछ इस तरह:

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

बस कोशिश की है कि macOS Mojave पर, रूबी 2.5.3p105 और रेल्स 5.2.2 और काम किया।


धन्यवाद हॉज। मैंने अभी इसकी कोशिश की और यह काम नहीं किया। मुझे लगता है कि मैंने पहले भी यह कोशिश की थी। मुझे यह कहना चाहिए कि सिम्लिंक और lnवे चीजें नहीं हैं
जिनके

5
मैंने मेरे लिए काम किया। शायद @JonathanTuzman आप अच्छे डायर में नहीं थे? cd /usr/local/opt/readline/lib
उलेसे बीएन

7
brew link readline --forceमें लिंक बनाना था /usr/local/opt/readline/lib
कैंडीलैंड

अगर मैं कर सकता तो मैं तुम्हें +10 देता। धन्यवाद!
eos87

असली जवाब brew link readline --forceकैंडलैंड का है, जो मेरे लिए काम करता था
रकीब फ़िज़ा

42

मेरे रूबी संस्करण को पुनः स्थापित करने से लगता है कि यह तय हो गया है:

rvm reinstall 2.3.7

11
यह उत्तर है, यदि आपने माणिक स्थापित करने के लिए rvm का उपयोग किया है। यदि आपके रूबी संस्करण को रीडलाइन के एक संस्करण के खिलाफ संकलित किया गया है जो अब आपके सिस्टम पर मौजूद नहीं है, तो आपको नए संस्करण के खिलाफ लिंक करने के लिए माणिक को फिर से जोड़ना चाहिए। मैं बस इस मुद्दे पर खुद ही भागा, और readline.7.dylib के लिए खड़े होने के लिए readline.8.dylib पर सहानुभूति रखने के लिए सब कुछ करने की कोशिश की (जो वास्तव में एक बुरा विचार की तरह लगता है, भले ही ऐसा लगता है कि ज्यादातर सभी के लिए काम किया हो, जो उस उत्तर को उभारते हैं ।)
किंग्डन

4
मैं rbenv install 2.5.1अपने संदर्भ में मेरे लिए रेंबव और मेरे लिए काम करता हूं। जब मैं sudo xcode-select -s /Library/Developer/CommandLineToolsकहीं और एक समस्या का सामना कर रहा था, तो उसे ठीक करने के लिए मैंने इसे छोड़ दिया था। fwiw
somedirection

1
यदि आप बंडलर का उपयोग कर रहे हैं तो आपको बाद में पता चल सकता है कि आपको bundle installमूल एक्सटेंशन के साथ रत्नों को फिर से स्थापित करने की आवश्यकता है।
19

27

क्या आप इसे आजमा सकते है

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

आप सही रास्ते पर हैं, लेकिन ऐसा लगता है जैसे रेल libreadline.7.dylib और libreadline.7 की तलाश कर रही है ।dylib फ़ोल्डर में नहीं है।


1
जब मैं 'काढ़ा उन्नयन' चलाने के लिए समस्या फिर से प्रकट होती है, लेकिन यह समाधान ठीक काम करता है और इसे ठीक करता है
Iwan B.

17

हां, सबसे अच्छा जवाब है पुनर्स्थापना।

आप आसानी से टाइप करके संस्करण प्राप्त कर सकते हैं:

ruby -v

के साथ rbenv, कमांड है:

rbenv install 2.3.7

साथ rvm:

rvm reinstall 2.3.7

रेडिस-रैक संघर्ष से स्थापित निष्पादन योग्य के साथ रेक संघर्ष से "रेक" केrbenv install <ruby-version> साथ रनिंग विफल रही । मुझे भागना थाrbenv uninstall <ruby-version> && rbenv install <ruby-version>
हीरगुआर 101

6

एक बहुत ही सरल उपाय जिसमें आपके RVM जेवरात या सिमी-लिंकिंग लाइब्रेरी का पुनर्निर्माण शामिल नहीं है।

अपने Gemfile में जोड़ें:

gem 'rb-readline'

यदि आप बंडलर समूह कर रहे हैं

group :development do
  gem 'rb-readline'
end

फिर भागो

> bundle

मुझे पता है कि अगर काम नहीं करता है।


4

ज्यादातर रूबी-अनुप्रयोगों में, यह उन रत्नों के कारण होता है जिनके पास एक्सटेंशन होते हैं (रत्नों को "मूल एक्सटेंशन का निर्माण .."), जो इस मामले में, के एक विशिष्ट संस्करण का उपयोग करके बनाया जाता है readline

असल में, दो समाधान हैं:

या तो, आप मणि के संस्करण ither को गायब कर सकते हैं, संस्करण को गायब कर सकते हैं। यह कई मामलों में काम करेगा, लेकिन अगर पश्चगामी संगतता टूट गई है, तो यह नहीं होगा।

या, यदि मणि वास्तव में संस्करण 8 का समर्थन करता है, तो आप उस विशिष्ट मणि को पुन: स्थापित कर सकते हैं, या इसे चलाकर "प्राचीन" कर सकते हैं gem pristine --all

EDIT : आपके "क्या मैंने कोशिश की है" के दायरे में, PostgreSQL को फिर से स्थापित करना, एक बायनेरिज़ में से एक है, जिसे एक विशिष्ट संस्करण का उपयोग करके बनाया गया है, जिसे सिस्टम लाइब्रेरी के साथ काम करने के लिए भी पुनर्निर्माण की आवश्यकता हो सकती है, जैसे कि रीडलाइन।


एसीके! प्रिस्टिन ने इसे ठीक नहीं किया। अपने वर्तमान DB से किसी भी संबंध को तोड़ने के बिना मुझे PostgreSQL को कैसे पुनर्स्थापित करना चाहिए? (निश्चित रूप से जवाब "यह एक चिंता का विषय नहीं हो सकता है", जहाँ तक मुझे कुछ भी पता है)।
जोनाथन तुजमैन

4

इस मुद्दे को मिला:

dyld: Library not loaded: /usr/local/opt/mpfr/lib/libmpfr.4.dylib

करते हुए...

cd /usr/local/opt/mpfr/lib/
ln -s libmpfr.dylib libmpfr.4.dylib

MacOS कैटालिना के लिए मेरे लिए चाल चली


2

इसलिए Ive ने यहां कुछ उत्तर दिए, लेकिन मुझे नहीं लगता कि वे वेनिला Mojave मैक के साथ काम कर सकते हैं। Im 10.14.4 का उपयोग करते हुए मैंने ये किया:

  • https://brew.sh से होमब्रे करें

  • $ brew install coreutils: यह मैक के लिए ग्नू कोरुटिल्स pkg स्थापित करता है, हम greadlinkइस से चाहते हैं क्योंकि macOSX की रीडलिंक gnu readlink के समान नहीं है। इसकी बेहद उलझन है लेकिन मैकलैंड में ऐसा ही जीवन है।

  • $ echo 'alias readlink=greadlink' >> ~/.bash_aliasesमुझे लगता है कि मैं एक बहुत कमी है, इसलिए मैं greadlink aliasing द्वारा मौजूदा readlink ओवररोड करने के लिए macs readlink पाया। (आप इसे सभी उपयोगकर्ताओं द्वारा उपयोग करने योग्य बना सकते हैं $ alias readlink=greadlink >> /etc/bashrcजिसके द्वारा प्रत्येक उपयोगकर्ता इसका उपयोग करने में सक्षम होगा।

  • $ ln -s /usr/local/opt/readline/lib/libreadline.8.dylib /usr/local/opt/readline/lib/libreadline.7.dylibमैंने .8.'.8.0' के बजाय पहले से लिंक की गई फ़ाइल को लिंक किया । फ़ाइल क्योंकि अगर यह अद्यतन करने के लिए किया गया था .8.1.तो मेरे रीडलिंक पुस्तकालय पर तोड़ या याद नहीं होगा। मुझे पूरा यकीन है कि हम 9 + आने से पहले अपने मैक को प्रारूपित करेंगे।


0

मैं मूल पुस्तकालयों से मैन्युअल रूप से सहानुभूति रखने के खिलाफ सिफारिश करूंगा। ओएस एक्स 10.4 के आस, मानक में पुस्तकालय पथ शामिल /usr/includeनहीं है और अब एसआईपी द्वारा लॉक किया गया है (चीजों को स्थानांतरित करना मुश्किल है)।

ऐप्पल आपके लिए "पुराने स्थान" में हेडर स्थापित करने में सक्षम होने के लिए एक "विरासत इंस्टॉलर" को जहाज करता है, जो आपके द्वारा स्थापित हेडर को सही ढंग से खोजने के लिए आपके रास्ते को भी हल करेगा brew

cp /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg ~/Desktop && open ~/Desktop/macOS_SDK_headers_for_macOS_10.14.pkg`

क्या हो रहा है, इस पर विस्तृत लेखन के लिए यहां देखें


यह केवल मैन्युअल रूप से सहानुभूति libreadline.8.dylibरखने के बाद काम करता है libreadline.7.dylibजो गायब था। यानी रन कमांड:ln -s /usr/local/opt/readline/lib/libreadline.8.dylib /usr/local/opt/readline/lib/libreadline.7.dylib
डेविड शुमन

0

दौड़ते समय मेरी समस्या बस इतनी ही थी lftp

बस चलने brew upgradeसे मेरी समस्या हल हो गई है, क्योंकि यह अपडेट हो गई है (दूसरों के बीच):

readline 8.0.0_1 -> 8.0.1
lftp 4.8.4 -> 4.8.4_2

0

बैकग्राउंड: यह तब हुआ है जब मैंने बाघ को स्थापित करने की कोशिश की थी, लेकिन मुझे लगता है कि यह एक सामान्य मुद्दा है कि आपके पास हो सकता है कि आपको इंस्टॉल किए गए सॉफ़्टवेयर को सही तरीके से लिंक करने की आवश्यकता हो जो दूसरा सॉफ़्टवेयर चाहता है।

यदि आप अपने मैक पर स्थापित रीडलाइन नहीं खोज पा रहे हैं, तो आपको दौड़ना चाहिए

brew install readline

आपके द्वारा समय सीमा स्थापित करने के बाद, काढ़ा आपको इसे लिंक करने के लिए कहेगा। लेकिन वास्तव में आप चलाकर लिंक नहीं कर सकते

brew link readline

यहां तक ​​कि आप दौड़कर भी लिंक नहीं कर सकते

sudo brew link readline

मैक ओएस आपको चेतावनी देगा कि यह बहुत खतरनाक है और आपको ऐसा करने के लिए रोक देगा।

रीडलाइन का नवीनतम संस्करण 8 संस्करण है, इसलिए आपको त्रुटि संदेश दिखाई देगा जैसे

Library not loaded: /usr/local/opt/readline/lib/libreadline.8.dylib

काढ़ा स्थापित करने की समय सीमा

/usr/local/Cellar/readline/8.0.4

इसलिए आपको इसे मैन्युअल रूप से उस स्थान से लिंक करना होगा जो कमांड ls का उपयोग करके आपका सॉफ़्टवेयर चाहता है

ln -s /usr/local/Cellar/readline/8.0.4 /usr/local/opt/readline

का आनंद लें!

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