रूबी बंडल प्रतीक नहीं मिला: _SSLv2_client_method (LoadError)


249

मैं homebrew का उपयोग करके ओपल को कुछ अपडेट करने का प्रयास कर रहा था और मैं किसी तरह सब कुछ तोड़ने में कामयाब रहा। मैं अब कुछ नहीं कर सकता, यह वही है जो मुझे मिलता है जब मैं बंडल स्थापित करने की कोशिश करता हूं:

$ bundle install
/Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in    `require': dlopen(/Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/x86_64-darwin13.0/openssl.bundle, 9): Symbol not found: _SSLv2_client_method (LoadError)
Referenced from: /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/x86_64-darwin13.0/openssl.bundle
Expected in: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib
in /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/x86_64-darwin13.0/openssl.bundle - /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/x86_64-darwin13.0/openssl.bundle
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/openssl.rb:17:in `<top (required)>'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/security.rb:11:in `<top (required)>'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/package.rb:43:in `<top (required)>'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/dependency_installer.rb:3:in `<top (required)>'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.3/lib/bundler/installer.rb:2:in `<top (required)>'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.3/lib/bundler/cli/install.rb:78:in `run'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.3/lib/bundler/cli.rb:146:in `install'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.3/lib/bundler/vendor/thor/command.rb:27:in `run'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.3/lib/bundler/vendor/thor/invocation.rb:121:in `invoke_command'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.3/lib/bundler/vendor/thor.rb:363:in `dispatch'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.3/lib/bundler/vendor/thor/base.rb:440:in `start'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.3/lib/bundler/cli.rb:9:in `start'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.3/bin/bundle:20:in `block in <top (required)>'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.3/lib/bundler/friendly_errors.rb:5:in `with_friendly_errors'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.3/bin/bundle:20:in `<top (required)>'
    from /Users/asServer/.rbenv/versions/2.1.2/bin/bundle:23:in `load'
    from /Users/asServer/.rbenv/versions/2.1.2/bin/bundle:23:in `<main>'

2
SSLv2 टूट गया है, इसलिए कोड होने का लगभग कोई कारण नहीं है SSLv2_client_method। क्या आप रूबी फ़ाइल खोल सकते हैं और SSLv2 विधियों के संदर्भ में टिप्पणी कर सकते हैं? अंतर्निहित कारण के साथ कॉन्फ़िगर libsslकिया /usr/local/opt/openssl/libगया था no-ssl2(लेकिन यह 2014 में समस्या नहीं होनी चाहिए)।
jww

जवाबों:


287

मैंने अपने सिस्टम पर एक समान मुद्दा तय किया। आपको रूबी 2.1.2 की अपनी स्थापना को फिर से बनाने की आवश्यकता है और यह नए अपडेट किए गए एसएसएल के खिलाफ फिर से लिंक करेगा।

$ rbenv install 2.1.2
rbenv: /Users/ryan/.rbenv/versions/2.1.2 already exists
continue with installation? (y/N) y
Downloading ruby-2.1.2.tar.gz...
-> http://dqw8nmjcqpjn7.cloudfront.net/f22a6447811a81f3c808d1c2a5ce3b5f5f0955c68c9a749182feb425589e6635
Installing ruby-2.1.2...
Installed ruby-2.1.2 to /Users/ryan/.rbenv/versions/2.1.2

यह आरवीएम के माध्यम से माणिक 1.9.3 की एक ताजा स्थापना के बाद हो रहा है। नया मैक और एक पुराना कोड आधार। क्या मुझे ओपनसेल का एक अलग संस्करण चाहिए?
डिजीडिगो २ dig

8
@ बारह17 त्रुटियां एक एसएसएल लाइब्रेरी को खोजने में सक्षम नहीं होने से संबंधित हैं और ओपी ने उल्लेख किया है कि उन्होंने हाल ही में अपने ओपन संस्करण के इंस्टॉल किए गए संस्करण को अपग्रेड किया था। मैं एक ही उन्नयन परिदृश्य के साथ एक ही मुद्दा था; मुझे लगता है कि पुनर्निर्मित चीजों को पुनर्निर्मित करने के लिए रूबी को अपग्रेड किए गए पुस्तकालयों के खिलाफ बनाया गया है (पुराने वाले नहीं मिल सकते हैं)।
रयान डेलुगोज

7
बस इसे जोड़ने के लिए, यदि कोई बॉक्स उपयोगकर्ता इस पार आता है - मुझे ऊपर दिए गए आदेशों का उपयोग करके पुनः इंस्टॉल करने के लिए rbenv नहीं मिल सकता है - इसलिए मुझे rnv का उपयोग करके 2.1.2 की स्थापना रद्द करना और पुनर्स्थापित करना है rbenv uninstall 2.1.2 rbenv install 2.1.2 bundle
jeffsaracco

4
योसेमाइट अपग्रेड के बाद, मेरे पास यह मुद्दा था। ऊपर काम किया है, लेकिन उसके बाद ही मैंने अपनी gcc को रीडायरेक्ट किया। export CC=/usr/bin/gccअधिक जानकारी के लिए: यहाँ rbenv से github मुद्दा है जिसने मदद की
डैन विलियम्स

1
यदि आपने होमब्रेव के साथ रेंबव को स्थापित किया है तो आपको इसकी आवश्यकता हो सकती है brew upgrade rbenv ruby-build
जस्टिन टान्नर

185

मैं Opensl को अपग्रेड करने के बाद एक समान मुद्दा था। मैं rvm का उपयोग करता हूं। मैंने आरवीएम को अपग्रेड करके देखा।

$ rvm get stable

मैंने अगली बार 1.9.3 पुनः स्थापित किया।

rvm reinstall ruby-1.9.3-p545

पुनः स्थापित करने के बाद, मैं भागा:

$ rvm gemset pristine

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

rvm gemset use mygemset
rvm gemset empty mygemset
gem install bundler
bundle install

यदि आपके पास कई रत्न हैं, तो आपको उनमें से प्रत्येक के लिए इन चरणों को दोहराना होगा।


10
इसने मेरे लिए काम किया। आरवीएम ने स्वचालित रूप से जेमसेट प्रिस्टाइन की इमारत को लात मारी।
Ducain

Yosemite पर मेरे लिए काम किया, मैं बस भाग गया: rvm get stableऔरrvm reinstall ruby-2.0.0
MatCarey

4
Yosomite पर मुझे माणिक स्थापित करने में समस्या थी, क्योंकि यह सही gccसंस्करण खोजने में सक्षम नहीं है । मैं के साथ समाप्त हो गयाCC=/usr/bin/gcc rvm reinstall ruby-1.9.3-p551
अलेक्जेंडर Beletsky

@MatCarey rvm get stableऔर rvm reinstall ruby-2.0.0Mavericks में भी काम किया। धन्यवाद।
अमृतकांड

मेरे लिए जो काम rvm get stableकिया गया , उसके rvm install ruby-2.0.0-p598बाद (चूंकि मैं कुछ पैच संस्करणों के पीछे था)। इसके अलावा, मैंने अपनी वर्तमान कार्यशील निर्देशिका ( ) को अपडेट किया .ruby-version, चलाया bundleऔर बाहर निकाला cd ..और cd -सफलतापूर्वक चलने से पहले ( ) वापस आ गया foreman start
user664833

17

Rvm के तहत 1.9.3-p547 के लिए एक ही मुद्दा है

rvm reinstall ruby-1.9.3-p547

रूबी फिर से स्थापित हो जाता है, लेकिन gemset_pristineआवेदन के लिए स्थापित करने में विफल रहता है क्योंकि

libv8 version 3.16.14.3 failed

यही कारण था कि मुझे पहली बार में यह बात मिली। शातिर हताशा चक्र ...

अद्यतन
अपने मंच संस्करण की जाँच करें। मेरे पास उदाहरण के लिए डार्विन 10.8 है और यह यहां सूचीबद्ध नहीं है । इसलिए, जब तक कि आपके संस्करण के लिए libv8 मणि के आपके मंच के लिए एक प्री-कम्पोजिट बाइनरी नहीं है, तब तक एक लंबा (लंबा-लंबा) समय लगने वाला है। रात के खाने के लिए बाहर जाना, एक फिल्म चिल करना ... अगर बहुत पूछें, तो शायद वे एक द्विआधारी डिस्ट्रो सेट करेंगे ...


1
मुझे माणिक 1.9.3 के लिए समर्थन की आवश्यकता है और मैं उपयोग कर रहा हूँ rvm, homebrewऔर xcodev6.1.1 Yosemite 10.10.2 पर। मैंने बस इस्तेमाल किया rvm reinstall ruby-1.9.3-p394; नए माणिक को संकलित करने के बाद, आरवीएम ने रत्नों को प्राचीन बना दिया, साथ ही साथ कोई समस्या नहीं है।
टॉम हैरिसन

हां, यह बाइनरी वितरण पर आधारित है। लिंक यह है कि किसी को पहले जांच करने की अनुमति दी जाए कि क्या उन्हें तत्काल प्रतिक्रिया मिलेगी या बंद करके ध्यान करें!
जेरोम


7

आप मेरी तरह एक डॉर्क हो सकते हैं, जिसमें कई ओपनसेल हैं

मैं 2.1.2 के लिए एक ही मुद्दा था और रयान Dlugosz के उत्कृष्ट जवाब काफी दूर नहीं गया था। मेरी समस्या यह थी कि मेरे पास ओपनसेल के कई संस्करण स्थापित थे (मुझे लगता है कि मैं के माध्यम से स्थापित किया था brew और git पहले पिछले प्रोजेक्ट्स में चुका )।

मुझे डिलीट / ऑप्ट / लोकल / बिन / ओप्सनल को डिलीट करना था और फिर 2.1.2 का पुनर्निर्माण करना था।

वैश्विक rbenv माणिक की जाँच करें

$ rbenv global
2.1.2

खुलता है

$ which -a openssl
/opt/local/bin/openssl
/opt/local/bin/openssl
/usr/bin/openssl

डुप्लीकेट ओपनसेल को मार डालो

$ sudo rm -rf /opt/local/bin/openssl

2.1.2 का पुनर्निर्माण करें

$ rbenv install -f 2.1.2
Downloading openssl-1.0.1g.tar.gz...
-> http://dqw8nmjcqpjn7.cloudfront.net/53cb818c3b90e507a8348f4f5eaedb05d8bfe5358aabb508b7263cc670c3e028
Installing openssl-1.0.1g...
Installed openssl-1.0.1g to /Users/globber/.rbenv/versions/2.1.2

Downloading ruby-2.1.2.tar.gz...
-> http://dqw8nmjcqpjn7.cloudfront.net/f22a6447811a81f3c808d1c2a5ce3b5f5f0955c68c9a749182feb425589e6635
Installing ruby-2.1.2...
Installed ruby-2.1.2 to /Users/globber/.rbenv/versions/2.1.2

5

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

आरवीएम को हटाना

मैं अपने सिस्टम से RVM (रूबी संस्करण प्रबंधक) को कैसे हटा सकता हूं?

आरवीएम, रेल स्थापित करना

$ कर्ल -L https://get.rvm.io | bash -s
$ rvm को स्थिर
$ rvm आवश्यकताएं प्राप्त होती हैं
$ rvm स्थापित 2.0.0 --with-opensl-dir = $ HOME / .rvm / usr
$ rvm उपयोग 2.0.0 $ मणि अद्यतन --system +.3
$ मणि स्थापित रेल स्थापित करें। - विवर 4.0.5


4

rbenv उपयोगकर्ता:

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

$ rbenv लोकल 2.1.3


1

मामले में यह किसी की मदद कर सकता है: मेरे पास रूबी का एक नया संस्करण स्थापित था (2.1.2), और मेरे .ruby- संस्करण फ़ाइल में मैंने पुराने को संदर्भित किया (2.0.0-p353)

मेरे .ruby-version फ़ाइल को 2.1.2 में बदलना मेरे लिए समस्या को निर्धारित करता है।


1

मुझे एक समान समस्या थी, जो कि 2.2.2 पर अपग्रेड करने के बाद हुई। हालाँकि, मेरा वातावरण थोड़ा अलग है, जिसके कारण उपरोक्त समाधान काम नहीं कर रहे हैं।

मैं उपयोग कर रहा हूँ:

  • OSX Yosemite (10.10.4)
  • chruby
  • माणिक स्थापित
  • खुलता है (homebrew के माध्यम से स्थापित)

निम्नलिखित कमांड ने मेरी स्थिति में इसे हल किया:

> sudo ruby-install -r /opt/rubies ruby 2.2.2 -- --with-openssl-dir=/usr/local/opt/openssl
> gem install bundler
> bundler install

0

ऊपर दिए गए स्वीकृति उत्तरों के अलावा, आपको नए इंस्टॉल किए गए संस्करण का उपयोग करने के लिए रेनेब को बताना पड़ सकता है। उदाहरण के लिए, मेरे पास ~ / .rbenv / संस्करण में पुराना संस्करण था, इसलिए renv हमेशा पुराने का उपयोग कर रहा था। उस फ़ाइल में (या कमांड लाइन के माध्यम से) नए संस्करण को मैन्युअल रूप से सेट करते हुए समस्या को ठीक करना चाहिए।

rbenv install -f 2.1.2
rbenv versions
rbenv global 2.1.2 //sets global version to 2.1.2

और अगर आपको rbenv के बाद के संस्करणों को नहीं देखने में कोई परेशानी है, जैसे कि मुझे पता है कि किसी ने किया है ... सुनिश्चित करें कि आपने रूबी-बिल्ड अपडेट किया है। काढ़ा के माध्यम से सबसे अधिक संभावना है।
wkhatch
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.