रूबी 1.9.2 स्थापित करने के लिए RVM का उपयोग करते समय कर्ल प्रमाणपत्र त्रुटि


90

रूबी 1.9.2 डाउनलोड करने का प्रयास करते समय RVM एक प्रमाणपत्र त्रुटि में चल रहा है। ऐसा लगता curlहै कि एक प्रमाणपत्र समस्या हो रही है लेकिन मुझे यकीन नहीं है कि इसे कैसे दरकिनार किया जाए। मैंने नीचे सटीक त्रुटि जानकारी शामिल की है।

$ rvm install 1.9.2
Installing Ruby from source to: /Users/willdennis/.rvm/rubies/ruby-1.9.2-p180, this may take a while depending on your cpu(s)...

ruby-1.9.2-p180 - #fetching 
ERROR: Error running 'bunzip2 '/Users/willdennis/.rvm/archives/ruby-1.9.2-p180.tar.bz2'', please read /Users/willdennis/.rvm/log/ruby-1.9.2-p180/extract.log
ruby-1.9.2-p180 - #extracting ruby-1.9.2-p180 to /Users/willdennis/.rvm/src/ruby-1.9.2-p180
ruby-1.9.2-p180 - #extracted to /Users/willdennis/.rvm/src/ruby-1.9.2-p180
Fetching yaml-0.1.3.tar.gz to /Users/willdennis/.rvm/archives

curl: (60) SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
More details here: http://curl.haxx.se/docs/sslcerts.html

curl performs SSL certificate verification by default, using a "bundle"
 of Certificate Authority (CA) public keys (CA certs). The default
 bundle is named curl-ca-bundle.crt; you can specify an alternate file
 using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented in
 the bundle, the certificate verification probably failed due to a
 problem with the certificate (it might be expired, or the name might
 not match the domain name in the URL).
If you'd like to turn off curl's verification of the certificate, use
 the -k (or --insecure) option.
ERROR: There was an error, please check /Users/willdennis/.rvm/log/ruby-1.9.2-p180/*.log. Next we'll try to fetch via http.
Trying http:// URL instead.

curl: (60) SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
More details here: http://curl.haxx.se/docs/sslcerts.html

curl performs SSL certificate verification by default, using a "bundle"
 of Certificate Authority (CA) public keys (CA certs). The default
 bundle is named curl-ca-bundle.crt; you can specify an alternate file
 using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented in
 the bundle, the certificate verification probably failed due to a
 problem with the certificate (it might be expired, or the name might
 not match the domain name in the URL).
If you'd like to turn off curl's verification of the certificate, use
 the -k (or --insecure) option.
ERROR: There was an error, please check /Users/willdennis/.rvm/log/ruby-1.9.2-p180/*.log
Extracting yaml-0.1.3.tar.gz to /Users/willdennis/.rvm/src
ERROR: Error running 'tar zxf /Users/willdennis/.rvm/archives/yaml-0.1.3.tar.gz -C /Users/willdennis/.rvm/src --no-same-owner', please read /Users/willdennis/.rvm/log/ruby-1.9.2-p180/yaml/extract.log
/Users/willdennis/.rvm/scripts/functions/packages: line 55: cd: /Users/willdennis/.rvm/src/yaml-0.1.3: No such file or directory
Configuring yaml in /Users/willdennis/.rvm/src/yaml-0.1.3.
ERROR: Error running ' ./configure --prefix="/Users/willdennis/.rvm/usr"  ', please read /Users/willdennis/.rvm/log/ruby-1.9.2-p180/yaml/configure.log
Compiling yaml in /Users/willdennis/.rvm/src/yaml-0.1.3.
ERROR: Error running '/usr/bin/make ', please read /Users/willdennis/.rvm/log/ruby-1.9.2-p180/yaml/make.log
Installing yaml to /Users/willdennis/.rvm/usr
ERROR: Error running '/usr/bin/make install', please read /Users/willdennis/.rvm/log/ruby-1.9.2-p180/yaml/make.install.log
ruby-1.9.2-p180 - #configuring 
ERROR: Error running ' ./configure --prefix=/Users/willdennis/.rvm/rubies/ruby-1.9.2-p180 --enable-shared --disable-install-doc --with-libyaml-dir=/Users/willdennis/.rvm/usr ', please read /Users/willdennis/.rvm/log/ruby-1.9.2-p180/configure.log
ERROR: There has been an error while running configure. Halting the installation.

मैं इस त्रुटि को कैसे हल या टाल सकता हूं?


क्या आपने उस रूबी संस्करण को संकलित करने के लिए पिछले सभी निर्भरताएं स्थापित की थीं?
ईवेंस

संपूर्ण समस्या और सुझाए गए समाधान को बहुत लंबे त्रुटि संदेश में कहा गया है। मुझे नहीं लगता कि यहाँ एक उत्तर में उस पाठ को दोहराने से बहुत मदद मिलेगी। उल्लिखित URL पर पढ़कर शुरू करें।
डैनियल स्टेनबर्ग

2
@daniel को छोड़कर, एक बुरा एसएसएल प्रमाणपत्र के बारे में शिकायत करने वाले कर्ल को रोकने का सामान्य तरीका, -k, यहां उपयोग नहीं किया जा सकता है, क्योंकि कर्ल को आरवीएम द्वारा संचालित किया जा रहा है। BTW, आपको इस बारे में सावधानी से सोचना चाहिए कि क्या आप वास्तव में खराब SSL सेरल्स को अनदेखा करने की अनुमति देना चाहते हैं। एक चीज़ जिसे आप आज़मा सकते हैं, वह है कर्ल को एक नया CA बंडल देना । @ डोरोथी का जवाब नीचे काम करना चाहिए।
डैन ब्रौली

@dan: इसलिए त्रुटि संदेश फिर से पढ़ें। यह विशेष रूप से आपको खराब प्रमाणपत्रों को अनदेखा करने का सुझाव नहीं देता है (मैंने उस त्रुटि संदेश को लिखा था), यह स्पष्ट रूप से बताता है कि आप क्या कर सकते हैं और यह एक पूर्ण विवरण के साथ एक यूआरएल प्रदान करता है जिसमें अद्यतन सीए प्रमाण पत्र कैसे प्राप्त करें।
डैनियल स्टेनबर्ग

1
@ डैनियल: मुद्दा यह है कि त्रुटि संदेश कर्ल के लिए है, आरवीएम नहीं! आप कर्ल के सुझाए गए समाधान को सभी को पढ़ सकते हैं, लेकिन यदि आप आरवीएम के कर्ल के आह्वान को संशोधित नहीं कर सकते हैं, तो आप फंस गए हैं। मैंने खुद कर्ल के एसएसएल बंडल को अपडेट करने की कोशिश की (CURL_CA_BUNDLE सेटिंग) और यह काम नहीं किया- वास्तव में रिमोट एसएसएल सर्टिफिकेट में कुछ गड़बड़ है जो याम्ल टैरबॉल को होस्ट करता है, न कि केवल एक आउट-ऑफ-डेट कर्ल सीए बंडल। RTFM के लिए एक उपयोगकर्ता बोलने ठीक उत्पादन वास्तव में पढ़ने अगर है करता है इस समस्या को ठीक है, लेकिन वह यह है कि नहीं मामला यहाँ। फिर, नीचे दिए गए उत्तर को देखें जो वास्तव में समस्या को ठीक करता है।
डैन ब्रौली

जवाबों:


125

1.9.3 पर अपडेट करने की कोशिश करते समय यदि कोई अन्य व्यक्ति इस पर आता है (हालाँकि संस्करण संभवतः कोई फर्क नहीं पड़ता), आपके पास rvm के संस्करण की जाँच करें। वेन को rvm.beginrescueend.com से rvm.io पर ले जाया गया लगता है। पुरानी साइट का सुरक्षा प्रमाणपत्र समाप्त हो गया है, इसलिए कर्ल की प्रतिक्रिया सही है।

नई साइट से आरवीएम को अपडेट करने से यह समस्या ठीक हो गई और मुझे आगे बढ़ने की अनुमति मिली।

$ \curl -L https://get.rvm.io | bash -s stable --rails --autolibs=enabled

अपडेट : जैसा कि @rodgerdpack ने उल्लेख किया है, कमांड बदलती है और मैंने ऊपर अपडेट किया है। सामान्य तौर पर, नवीनतम के लिए https://rvm.io/ देखें ।


1
काश मैं इस जवाब को पहले देखता। आरवीएम के साथ मैक ओएस एक्स पर 1.9.3 स्थापित करना ऊपर प्रस्तावित समाधानों के साथ भी काम नहीं कर रहा था। आरवीएम को अपडेट करने ने चाल चली, हालांकि।
क्रिस

मेरे लिए भी यही था (1.9.2 से 1.9.3 तक उन्नयन) धन्यवाद @jwadsack
अन्ना बिलस्ट्रॉम

इन दिनों आपके द्वारा
बताई

40

यदि स्क्रिप्ट को बदलना नहीं चाहते हैं और आप प्रमाणित बंडल में "हमेशा के लिए" प्रमाणपत्र जोड़ना नहीं चाहते हैं । एक बहुत अच्छा और त्वरित समाधान है:

#to download the cert
wget http://curl.haxx.se/ca/cacert.pem
#to let curl use it for the next calls
export CURL_CA_BUNDLE=~/cacert.pem

फिर अपनी स्क्रिप्ट चलाएं। पर्यावरण चर को रीसेट करने के लिए (बाद की स्क्रिप्ट कॉल के लिए जो इस प्रमाणपत्र का उपयोग नहीं करना चाहिए) अपने सिस्टम में फिर से लॉगिन करें या पर्यावरण चर को परेशान करें:

export CURL_CA_BUNDLE=

यह याम्ल के साथ एक समस्या तय करता है, लेकिन मेरे पास जटिलता के कुछ अन्य भाग के साथ अलग मुद्दे हैं।
एमर्सन

4
अब मैं CentOS पर इंस्टॉल करने के लिए rvm प्राप्त कर सकता हूं। बहुत बहुत धन्यवाद
channa ly

OSX Lion w / rvm 1.8.3 पर कुछ भी नहीं करता है।
मार्क रिचमैन

Centos5.4 पर अच्छी तरह से काम करता है। धन्यवाद।
येजुन सु

रूबी 2.0.0 प्राप्त करने के लिए OSX माउंटेन लायन पर एक आकर्षण की तरह काम करता है।
अर्कन

21

कर्ल को .rvm / लिपियों / लाने के लिए लाया जाता है, जो डिफ़ॉल्ट रूप से आपके होम डायरेक्टरी में होगा।

अपने पसंदीदा पाठ संपादक का उपयोग करके इसे संपादित करें: उदाहरण के लिए,

 nano ~/.rvm/scripts/fetch

56 और 58 लाइनों में (आरवीएम के अन्य संस्करणों के साथ भिन्न हो सकते हैं, निश्चित रूप से) आपको दो लाइनें दिखाई देंगी जो शुरू होती हैं

 fetch_command="curl ...

बस कर्ल के बाद -k जोड़ें, सहेजें और फिर से प्रयास करें।


9
यह मेरे लिए काम नहीं करता था, लेकिन मैंने आपके विचार का पालन किया और इस विकल्प का पता लगाया: अपने घर के फ़ोल्डर में ".curlrc" फ़ाइल बनाएँ ('~ / .curlrc')। इसे किसी भी संपादक में खोलें और फ़ाइल में "असुरक्षित" टाइप करें। फ़ाइल को सहेजें और सर्वश्रेष्ठ के लिए आशा करें।
जूलियन वीमर

8
RVM उस परिवर्तन को कभी भी शामिल नहीं करेगा, हम इसे इस तरह से करने को हतोत्साहित करते हैं, यदि आपको असुरक्षित कॉल (-k) का उपयोग करने की आवश्यकता है, तो echo insecure >> ~/.curlrcकेवल @dbikard निर्देशों के अनुसार प्रमाण पत्र अपडेट करें
19

डेबियन निचोड़ पर काम किया। यहां तक ​​कि पुराने पोस्ट बहुत समय बचा सकते हैं;) thx!
23

@mpapis मैं पूरी तरह से सहमत हूं, लेकिन RVM में स्थापित उपयोगकर्ता620965 के समाधान की व्याख्या करने वाली त्रुटि महान होगी
होवेन

3
नीचे दिए गए पोस्ट में उल्लिखित यूआरएल rvm.io के परिवर्तन के कारण यह सबसे अधिक संभावना है और इसे संबोधित करने का सही तरीका है। आपको एसएसएल सीरेट्स या कर्ल व्यवहार को अनदेखा करने की आवश्यकता नहीं है। केवल $ curl -L get.rvm.io जारी करके उचित URL से rvm अपडेट करें bash -s स्थिर जैसा कि नीचे दिखाया गया है
cclark

20

आपको http://curl.haxx.se/ca/cacert.pem से ca प्रमाणपत्र डाउनलोड करना होगा और उन्हें अपनी कर्ल-सीए-बंडल-नई.कार्ट फ़ाइल में जोड़ना होगा।

इस फ़ाइल के उपयोग का स्थान खोजने के लिए:

   $ curl-config --ca

   /usr/share/curl/curl-ca-bundle.crt

अपनी कर्ल-सीए-बंडल-बैकअप फ़ाइल का बैकअप लें:

$ cp /usr/share/curl/curl-ca-bundle.crt /usr/share/curl/curl-ca-bundle.crt.old

तो फिर तुम दो फ़ाइल का उपयोग करना चाहते हैं:

$ cat cacert.pem /usr/share/curl/curl-ca-bundle.crt >> curl-ca-bundle-new.crt

धन्यवाद, आपने मुझे कुछ समय बचाया!
तदास टी।

यह (होगा) मुझे OpenIndiana 151 पर HOURS को बचाया। यदि मैं एक से अधिक बार बढ़ा सकता हूं।
एंड्रयू जला

इसने मेरे लिए CentOS 5.8 पर काम किया; Certs / etc / pki / certs / उन लोगों के लिए स्थित हैं जिन्हें CentOS पर इसे खोजने की आवश्यकता है!
गिडव

और आप परिणामस्वरूप कर्ल-सीए-बंडल-न्यू.आर्ट के साथ क्या करते हैं?
वेलेरियो शियावोनी

नई सर्टिफिकेट फ़ाइल 'कर्ल-कॉन्फिगर --ca' का उपयोग करके मिली डायरेक्टरी में मौजूद होनी चाहिए।
अनिरुद्ध

17

शायद ये सभी जटिल समाधान एक बार आवश्यक थे, लेकिन अब आपको केवल आरवीएम को उन्नत करना होगा और आपकी समस्या हल हो जाएगी:

$ rvm get stable
$ rvm reload
$ rvm install ruby-1.9.3-p194

2
दुर्भाग्य से, अगर आरवीएम का आपका संस्करण काफी पुराना है, तो "आरवीएम गेट हेड" भी काम नहीं करता है। @ jwadsack का उत्तर बताता है कि क्यों।
एलेक्स डी

हाँ यह सच है। इसके अलावा, मेरे जवाब को देखते हुए, "rvm get head" सबसे अच्छी सलाह भी नहीं है। यह वास्तव में "rvm स्थिर होना चाहिए" होना चाहिए। मैं इसे दर्शाने के लिए अपना उत्तर संपादित करने जा रहा हूं।
निक मेसिक

14

अगर आपको कर्ल में सर्टिफिकेट चेक करने में कोई आपत्ति नहीं है (मैं नहीं):

echo insecure > ~/.curlrc

11

सेंटोस 5.6 (फाइनल) पर मुझे rvm 1.9.2 स्थापित करने में समस्या थी: त्रुटि थी:

curl: (60) SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
More details here: http://curl.haxx.se/docs/sslcerts.html

curl performs SSL certificate verification by default, using a "bundle"
 of Certificate Authority (CA) public keys (CA certs). The default
 bundle is named curl-ca-bundle.crt; you can specify an alternate file
 using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented in
 the bundle, the certificate verification probably failed due to a
 problem with the certificate (it might be expired, or the name might
 not match the domain name in the URL).
If you'd like to turn off curl's verification of the certificate, use
 the -k (or --insecure) option.
ERROR: There was an error, please check /usr/local/rvm/log/ruby-1.9.2-p290/*.log. Next we'll try to fetch via http.
Trying http:// URL instead.

curl: (60) SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
More details here: http://curl.haxx.se/docs/sslcerts.html

curl performs SSL certificate verification by default, using a "bundle"
 of Certificate Authority (CA) public keys (CA certs). The default
 bundle is named curl-ca-bundle.crt; you can specify an alternate file
 using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented in
 the bundle, the certificate verification probably failed due to a
 problem with the certificate (it might be expired, or the name might
 not match the domain name in the URL).
If you'd like to turn off curl's verification of the certificate, use
 the -k (or --insecure) option.
ERROR: There was an error, please check /usr/local/rvm/log/ruby-1.9.2-p290/*.log
ERROR: There has been an error while trying to fetch the source.  
Halting the installation.
ERROR: There has been an error fetching the ruby interpreter. Halting the installation.

यहां उन कार्यों की एक सूची दी गई है जिन्होंने मुझे समस्या को हल करने में मदद की

$ curl-config --ca # show path to the certificate
/usr/local/share/curl/curl-ca-bundle.crt
$ cd /usr/local/share/curl/ # go to that path
$ cp curl-ca-bundle.crt curl-ca-bundle.crt.bak # backup certificate
$ curl http://curl.haxx.se/ca/cacert.pem -o curl-ca-bundle.crt # download new
$ rvm install 1.9.2 # bingo it works

Btw कर्ल संस्करण 7.18.0 कर्ल है ('$ कर्ल -V' जांचने के लिए)


1
अच्छा समाधान, मेरे मामले में "rvm get head" निष्पादित करते समय मुझे यह त्रुटि हुई थी। और फाइल कर्ल-सीए-बंडल-आर्ट के नाम के साथ लिनक्स में सावधान रहें! अलग
अल्बर्ट कैटेलै

3

मैं स्थापित करने का प्रयास कर रहा था ruby-1.9.2-p290और उसी समस्या को लेकर आया था। चलने which curlऔर यह महसूस करने के बाद कि कर्ल का उदाहरण मेरे सिस्टम (OS X स्नो लेपर्ड) पर MAMP की स्थापना से आ रहा है, मैंने PATHसिस्टम डिफ़ॉल्ट का उपयोग करने के लिए अपने चर को फिर से कॉन्फ़िगर किया /usr/bin/curl। इस संस्करण का उपयोग करते हुए curl 7.19.7, मुझे आरवीएम के साथ रूबी के नवीनतम संस्करण को स्थापित करने में कोई समस्या नहीं थी।


2

आरवीएम का उपयोग करके मुझे 1.9.2 स्थापित करने में परेशानी हुई, यहां मेरा समाधान है:

  • Http://www.filewatcher.com/m/yaml-0.1.3.tar.gz.466845.0.0.html से yaml-0.1.3.tar.gz डाउनलोड करें
  • इसे /Uours//.rvm/archives/yaml-0.1.3.tar.gz पर सहेजें
  • ये आदेश चलाएँ:

    chmod 777 yaml-0.1.3.tar.gz

    tar zxf /Users//.rvm/archives/yaml-0.1.3.tar.gz -C /Users//.rvm/src

मुझे अभी भी फ़ाइल नहीं मिली, लेकिन स्थापना सफल रही

[2011-07-05 14:24:07] टार zxf /Users//.rvm/archives/yaml-0.1.3.tar.gz -C /Users//.rvm/src --no-same-owner tar (बच्चा): /Uours//.rvm/archives/yaml-0.1.3.tar.gz: नहीं खोल सकता: ऐसी कोई फ़ाइल या निर्देशिका टार (बच्चा): त्रुटि पुनर्प्राप्त करने योग्य नहीं है: अब बाहर निकल रहा है टार: बच्चे की स्थिति 2 टार : पिछली त्रुटियों से देरी से निकलने में त्रुटि


1
मैंने कुछ ऐसा ही किया है और ठीक काम किया है:wget http://pyyaml.org/download/libyaml/yaml-0.1.4.tar.gz; cp yaml-0.1.4.tar.gz /Users/yourname/.rvm/archives; rvm install default
वी

केवल इस समाधान ने मेरे लिए Mac Osx Lion पर काम किया। आपका बहुत बहुत धन्यवाद!
क्रिश्चियन ट्रेपो

1

धन्यवाद डोरोथी - इस रेसिपी ने मेरे लिए विन 7 पर्यावरण के लिए निम्नलिखित छोटे संशोधनों के साथ काम किया:

इस अंक वाले अन्य लोगों के लिए -

  1. CA_Bundle को अपडेट करने के बारे में चर्चा की सराहना करें - अच्छा करने के लिए, लेकिन उसने इस मुद्दे पर मदद नहीं की - pyyaml ​​वेबसाइट प्रमाणपत्र अभी भी CURL को एक त्रुटि फेंकने का कारण बनेगा और चूंकि CURL को इंस्टॉलर के भीतर लॉन्च किया गया है, कोई विकल्प जोड़ने का कोई तरीका नहीं है ।

  2. रूबी 1.9.2-P290 एक आईने के लिए YAML 0.1.4 तो Google स्थापित करने की कोशिश कर रहा है और उस संस्करण को डाउनलोड करें - मुद्दों को दरकिनार करने में YAML-0.1.3 का कोई प्रभाव नहीं होगा।

  3. आपको CHMOD 777 के समतुल्य विंडोज करने की आवश्यकता है - rvm / src फ़ोल्डर के भीतर निकाली गई फ़ाइलों के लिए। सुरक्षा बदलें ताकि सभी के पास स्वामित्व / सभी विशेषाधिकार हों और सभी फ़ाइलों और फ़ोल्डरों के लिए केवल-पढ़ने की विशेषता को बंद कर दें।

इंस्टॉलर अभी भी त्रुटियों को फेंक देगा जब यह डाउनलोड करने की कोशिश करता है (CURL त्रुटि), लेकिन निकालने की कोशिश करके फिर से शुरू करेगा। निष्कर्षण त्रुटियों को फेंक देगा क्योंकि टारबॉल पहले से ही src फ़ोल्डर में निकाला जाता है। YAML को कॉन्फ़िगर करने का अगला चरण त्रुटियों के बिना काम करना चाहिए यदि चरण 3 में अनुमतियाँ सही ढंग से सेट की गई थीं और स्थापना को आगे की समस्याओं के बिना पूरा करना चाहिए। (यदि साइबरगन / बैश के माध्यम से स्थापित किया गया है, तो आपको 'गप' जैसे सी संकलक को जोड़ने और डिफ़ॉल्ट कोर साइबरविन सेटअप विकल्पों में 'नेकर्स' (टुट कमांड) और 'मेक' जोड़ना होगा।)


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