2013-03-05 8 views
8

रूबी ने हाल ही में अपने भाई की मशीन पर काम करना बंद कर दिया।लोडरर: डलोपेन (डाइजेस्ट/sha1.bundle): प्रतीक नहीं मिला: _rb_Digest_SHA1_Finish

  • gem आदेशों
  • rails server
  • rails console

सभी निम्न त्रुटि के साथ विफल:

$ irb 
irb(main):001:0> require 'digest/sha1' 

LoadError: dlopen(~/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/x86_64-darwin12.2.0/digest/sha1.bundle, 9): Symbol not found: _rb_Digest_SHA1_Finish 
    Referenced from: ~/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/x86_64-darwin12.2.0/digest/sha1.bundle 
    Expected in: flat namespace 

in ~/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/x86_64-darwin12.2.0/digest/sha1.bundle - ~/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/x86_64-darwin12.2.0/digest/sha1.bundle 
    from ~/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require' 
    from ~/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require' 
    from (irb):1 
    from ~/.rbenv/versions/2.0.0-p0/bin/irb:12:in `<main>' 

उन्होंने रूबी के विभिन्न संस्करणों की कोशिश की। rvm के साथ सब कुछ पुनर्स्थापित करना। rvm implode चल रहा है और rvm को पुनर्स्थापित कर रहा है। rbenv पर स्विचिंग। कई रूबी ruby-build के माध्यम से स्थापित हैं। brew install ruby

सभी को एक ही समस्या थी।

यदि उसने सभी रूबी को अनइंस्टॉल किया, तो ओएस ने /usr/bin/ruby में संस्करण प्रदान किया। लेकिन यह 1.8.7 है।

समस्या निवारण के घंटों के बाद, हम नीचे दिए गए समाधान पर पहुंचे। मुझे आशा है कि इससे आपको कुछ दर्द से बचने में मदद मिलेगी।

उत्तर

10

संभावित समाधान:

  1. $ unset C_INCLUDE_PATH और रूबी

    यह पुनः स्थापित समाधान है कि मेरे लिए काम किया है।

    $ echo $C_INCLUDE_PATH

    तो C_INCLUDE_PATH सेट कर दिया जाता है, यह रूबी बनाता टूट जाएगा। इसे अपने पर्यावरण से हटा दें; या तो अस्थायी रूप से $ unset C_INCLUDE_PATH, या स्थायी रूप से (हो सकता है .bashrc, .profile, .bash_profile) में हो सकता है; फिर रूबी पुनः स्थापित करें।

  2. यह ओपनएसएसएल, आरवीएम, एक्सकोड के कमांड लाइन टूल्स (जीसीसी), या अन्य बिल्ड मुद्दों से संबंधित हो सकता है।

    यदि पिछले समाधान काम नहीं करता है तो this answer देखें।

2

किसी को भी, मेरी तरह, यहां इस तरह से किसी त्रुटि के कारण आने वाले के लिए:

LoadError: dlopen(/Users/sebkomianos/.rbenv/versions/2.0.0-p247/lib/ruby/2.0.0/x86_64-darwin13.0.0/openssl.bundle, 9): Symbol not found: _SSLv2_client_method 
Referenced from: /Users/sebkomianos/.rbenv/versions/2.0.0-p247/lib/ruby/2.0.0/x86_64-darwin13.0.0/openssl.bundle 
Expected in: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib 

एक समाधान (taken from here) माणिक के अपने संस्करण को पुनर्स्थापित करने के हो सकता है। उदाहरण: rbenv install 2.0.0-p247

+0

रूबी पुनर्स्थापित करने के लिए मेरे लिए काम किया। 'अनसेट C_INCLUDE_PATH' आवश्यक नहीं था। –

संबंधित मुद्दे