ruby - अपरिभाषित प्रतीक: SSLv3_method-.../openssl.so रूबी और आर्कलिंस के साथ



rvm archlinux (1)

समस्या यह है कि Archlinux OpenSSL पैकेज SSLv3 समर्थन के बिना बनाया गया है, इस प्रतिबद्ध के रूप में। मुझे विश्वास है कि ऐसी ही अन्य चीजों जैसे उबंटू जैसे अन्य डिस्ट्रस में किया गया है

RVM परिवेश में समाधान आपके रूबी को पुनर्स्थापित करना है जो उन्हें पुनर्निर्माण करेगा (आप नवीनतम आरवीएम पर अपडेट करना भी चाहते हैं):

$ rvm get head        # optional, if you want to!
$ rvm reinstall all   # or a specifc ruby version instead of 'all'

हालांकि, पुराने रूबी अभी भी इस तरह एक संकलन त्रुटि के साथ असफल हो जायेंगे:

Error running '__rvm_make -j1'
ossl_ssl.c:143:27: error: SSLv3_client_method undeclared here (not in a function)

इस पर आरवीएम टीम के साथ विचार विमर्श किया गया है जिसने रूबी पैच को स्थापित करने का सुझाव दिया है जो पुराने मालाओं को बनाने की अनुमति देता है:

$ curl https://github.com/ruby/ruby/commit/801e1fe46d83c856844ba18ae4751478c59af0d1.diff > openssl.patch
$ rvm install --patch ./openssl.patch 1.9.3-p194

इस पैच के साथ मैंने ruby-1.9.3-p194 , ruby-2.0.0-p247 और ruby-2.2.1 ruby-2.0.0-p247 सफलतापूर्वक बनाया है।

आर्कलिनक्स पर एक हालिया ओपनएसएसएल अपडेट ने रूबी को तोड़ दिया क्योंकि बाद में एसएलएलवी 3 पर निर्भर करता है जिसका समर्थन पूर्व में किया जा रहा था। रूबी कोड जो OpenSSL का उपयोग करता है, समस्या को प्रकट करेगा, जब वे नीचे की तरह एक त्रुटि से समाप्त हो जाएंगे:

openssl.so: undefined symbol: SSLv3_method - .../openssl.so (LoadError)

मैं रूबी के कई संस्करणों का उपयोग RVM के साथ करता हूं और समस्या उन सभी को लागू करता है

ओपनएसएसएल संस्करण में मेरी समस्या 1.0.2h लेकिन मेरा मानना ​​है कि इसे 1.0.2g साथ पेश किया गया था। संस्करण 1.0.2f ठीक काम करता है

यह कैसे संगतता समस्या को दूर किया जा सकता है ( ओपनएसएसएल डाउनग्रेडिंग के बिना )?





archlinux