ข้อผิดพลาด SSL เมื่อติดตั้ง rubygems ไม่สามารถดึงข้อมูลจาก 'https://rubygems.org/


269

ฉันพยายามทำแบบฝึกหัด Michael Hartl เมื่อฉันพยายามติดตั้งราง 3.2.14 ใน gemset ฉันได้รับปัญหาต่อไปนี้:

$ gem install rails -v 3.2.14

ข้อผิดพลาด: ไม่พบอัญมณี 'rails' ที่ถูกต้อง (= 3.2.14) นี่คือเหตุผล:

ไม่สามารถดาวน์โหลดข้อมูลจากhttps://rubygems.org/ - SSL_connect ส่งคืน = 1 errno = 0 state = SSLv3 อ่านใบรับรองเซิร์ฟเวอร์ B: การตรวจสอบใบรับรองล้มเหลว ( https://s3.amazonaws.com/production.s3.rubygems.org /specs.4.8.gz )

หลังจาก Googling ไปรอบ ๆ ฉันพบว่าฉันสามารถใช้แหล่งที่ไม่ใช่ SSL สำหรับ rubygems ดังนั้นฉันจึงวิ่ง:

sudo gem sources -a http://rubygems.org

จากนั้นเมื่อฉันพยายามติดตั้งรางอีกครั้งมันก็ประสบความสำเร็จ อย่างไรก็ตามฉันยังคงมีปัญหาข้างต้น แต่เป็นการเตือน:

คำเตือน: ไม่สามารถดึงข้อมูลจาก ' https://rubygems.org/ ': SSL_connect ส่งคืน = 1 errno = 0 state = SSLv3 อ่านใบรับรองเซิร์ฟเวอร์ B: การตรวจสอบใบรับรองล้มเหลว ( https://s3.amazonaws.com/production.s3 .rubygems.org / specs.4.8.gz )

ฉันจะลบคำเตือน / ข้อผิดพลาดนี้ทั้งหมดได้อย่างไร

ฉันใช้สิ่งต่อไปนี้:

  • rvm 1.22.15
  • ruby 2.0.0p247 (2013-06-27 ที่แก้ไข 41674) [x86_64-darwin12.3.0]
  • OSX 10.8.5

ดูเหมือนว่าจะมีข้อผิดพลาดในการถดถอย ฉันสังเกตว่าหนึ่งในนักเรียนของฉันมีปัญหาเดียวกันในวันนี้ใน OS X ยังคงทำงานกับปัญหา มีคำถามอื่น ๆ ที่เกี่ยวข้อง (เหมือนกัน) ใน SO จากปีที่แล้ว
vgoff

ปัญหานี้เป็นปัญหาที่รู้จักกันในล้าสมัย ( 2.0.*) rubygemsรุ่น พยายามที่จะอัปเดตเวอร์ชัน RubyGems ล่าสุด: แล้วเรียกใช้อีกครั้งgem update --system gem install
Aleksei Matiushkin

หากไม่สามารถอัปเดตเวอร์ชันทับทิมของคุณให้อัปเดต ปัญหานี้ได้รับการแก้ไขในทับทิมรุ่นใหม่
ฮง

หลังจากเพิ่มแหล่ง http แล้วการทำงานgem sources -r https://rubygems.org/ก็ใช้ได้ผลสำหรับฉัน (เท่าที่ลบคำเตือน)
BrainSlugs83

มีคำตอบยาวเกินไปมากในขณะที่สามารถแยกออกเป็นหนึ่งบรรทัดบน Linux / Mac: stackoverflow.com/a/56993071/5689995
laimison

คำตอบ:


382

สำหรับผู้ใช้ RVM & OSX

ตรวจสอบให้แน่ใจว่าคุณใช้ rvm ล่าสุด:

rvm get stable

จากนั้นคุณสามารถทำสองสิ่ง:

  1. อัปเดตใบรับรอง:

    rvm osx-ssl-certs update all
  2. อัพเดท rubygems:

    rvm rubygems latest

สำหรับผู้ใช้ที่ไม่ใช่ RVM

ค้นหาเส้นทางสำหรับใบรับรอง:

cert_file=$(ruby -ropenssl -e 'puts OpenSSL::X509::DEFAULT_CERT_FILE')

สร้างใบรับรอง:

security find-certificate -a -p /Library/Keychains/System.keychain > "$cert_file"
security find-certificate -a -p /System/Library/Keychains/SystemRootCertificates.keychain >> "$cert_file"

รหัสทั้งหมด: https://github.com/wayneeseguin/rvm/blob/master/scripts/functions/osx-ssl-certs


สำหรับผู้ใช้ที่ไม่ใช่ OSX

ca-certificatesให้แน่ใจว่าจะปรับปรุงแพคเกจ (สำหรับระบบเก่าอาจไม่สามารถใช้งานได้ - อย่าใช้ระบบเก่าซึ่งไม่ได้รับการปรับปรุงความปลอดภัยอีกต่อไป)

Windows note

ทับทิม Installerสร้างสำหรับ Windows ที่จัดทำโดยหลุยส์ Lavenaและเส้นทางไปยังใบรับรองจะแสดงสิ่งที่ต้องการC:/Users/Luis/...ตรวจสอบhttps://github.com/oneclick/rubyinstaller/issues/249สำหรับรายละเอียดเพิ่มเติมและคำตอบนี้https://stackoverflow.com / a / 27298259/497756สำหรับการแก้ไข


มีวิธีอื่นในการอัปเดต certs หากคุณไม่ได้ใช้ RVM หรือไม่
Eduardo

การเรียกใช้rvm rubygems latestส่งผลให้เกิดข้อผิดพลาดบ่นเกี่ยวกับการตรวจสอบที่ขาดหายไป อย่างไรก็ตามสิ่งต่าง ๆ ก็เริ่มทำงานโดยไม่ทำเช่นนั้น ... ดูเหมือนว่าคุณสามารถบังคับได้--verify-downloads 1ถ้าคุณต้องการ ความคิดใด ๆ ที่อาจเป็นเพราะอะไร มันพยายามดึงเวอร์ชั่นrubygems-2.1.6
Timo

rvm hardcodes md5s สำหรับการดาวน์โหลดในรหัสของมันฉันเพิ่งเพิ่มไปเป็นheadเวอร์ชั่นและจะวางจำหน่ายstableในไม่ช้า
mpapis

2
ฉันเรียกใช้บน Windows และรับเส้นทางที่ไม่มีอยู่ในคอมพิวเตอร์ของฉัน "C: /Users/Luis/Code/openknapsack/knap-build/var/knapsack/software/x86-windows/openssl/1.0.0k/ssl /cert.pem "ไม่มีผู้ใช้ชื่อ Luis เช่นกัน อะไรกันเนี่ย?
isimmons

3
มีข้อเสนอแนะใด ๆ สำหรับผู้ใช้ Mac Mojave หรือไม่? พบกันpermission denied: /private/etc/ssl/cert.pem
Chandrew

241

การค้นพบล่าสุด ...

https://gist.github.com/luislavena/f064211759ee0f806c88

ที่สำคัญที่สุดคือ ... ดาวน์โหลด https://raw.githubusercontent.com/rubygems/rubygems/master/lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot-2048.pem

คิดออกว่าจะติดที่ไหน

C:\>gem which rubygems
C:/Ruby21/lib/ruby/2.1.0/rubygems.rb

จากนั้นเพียงคัดลอกไฟล์. pem ใน ../2.1.0/rubygems/ssl_certs/ และดำเนินธุรกิจของคุณต่อไป


8
ตรวจสอบให้แน่ใจว่าได้บันทึกด้วย.pemส่วนขยายไม่ใช่.pem.txt!
Dan Dascalescu

3
ถ้ามันไม่ทำงาน ฉันทำตามคำตอบของคุณแล้ว แต่ก็ยังได้รับข้อผิดพลาด! 1) ฉันได้รับไฟล์AddTrustExternalCARoot-2048.pem2) ฉันวางไฟล์ไว้ที่C:\Ruby193\lib\ruby\1.9.1\rubygems\ssl_certs3) ฉันเรียกใช้gem install susyและได้รับข้อผิดพลาดเดียวกันUnable to download data from https://rubygems.org/ - SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
Green

ลองอัปเดตการติดตั้ง Ruby ของคุณ ...
สรุปสาระ

1
หมายเหตุบางประการเกี่ยวกับลิงก์ luis lavena ที่คุณให้ไว้ คุณอาจต้องการติดตั้ง rubygems จากไฟล์ gem แทนไฟล์ zip ที่เขากล่าวถึง ฉันไม่พบคำสั่งให้ติดตั้งจากไฟล์อัญมณีหรือไฟล์ zip ที่ไม่ได้แพ็ค อัญมณีที่นี่ - rubygems.org/pages/download คำสั่งคือ -gem install --local C:\Downloads\rubygems-update-2.4.5.gem
Erran Morad

9
ลิงก์ดาวน์โหลดไม่ถูกต้องอีกต่อไป สำหรับบรรดาของคุณที่ยังคงประสบปัญหานี้อ้างถึงคำตอบของ Dheerendra สำหรับการแก้ปัญหา
Llama.new

174

สำหรับผู้ใช้ windows

ไปที่ลิงค์http://rubygems.org/pages/download

  1. ดาวน์โหลดไฟล์ zip ล่าสุด (ในกรณีของฉัน 2.4.5)
  2. เปิดเครื่องรูดมัน
  3. เรียกใช้ "ruby setup.rb" ในโฟลเดอร์ที่คลายซิป
  4. ตอนนี้เรียกใช้คำสั่ง gem install

1
ทำงานสำหรับฉันใน Windows 8.1, Ruby 2.0.0 ไชโย
Yi Zeng

7
ทางออกที่ดีที่สุดสำหรับผู้ใช้ Windows
Sorin Haidau

1
ง่ายกว่าทางเลือกอื่น ๆ สำหรับ Windows ที่ระบุไว้ในคำตอบอื่น ๆ และทำงานได้อย่างสมบูรณ์บน Windows 7 64 บิต ขอบคุณ!
Gurgadurgen

1
มันไม่ได้ผลสำหรับฉัน Devkit เข้ากันไม่ได้กับ ruby ​​รุ่นล่าสุดบน windows 7
roo2

2
ทำงานได้สำหรับฉันใน Windows 10 และ Ruby 2.1.0 ขอบคุณ!
MSC

54

หากคุณต้องการใช้แหล่งที่ไม่ใช่ SSL ให้ลองลบแหล่ง HTTPS ก่อนจากนั้นเพิ่ม HTTP หนึ่งรายการ:

sudo gem sources -r https://rubygems.org
sudo gem sources -a http://rubygems.org  

UPDATE:

ในฐานะที่เป็นรัฐ mpapis สิ่งนี้ควรใช้เป็นวิธีแก้ปัญหาชั่วคราวเท่านั้น อาจมีข้อกังวลด้านความปลอดภัยบางอย่างหากคุณเข้าถึง RubyGems ผ่านแหล่งที่ไม่ใช่ SSL

เมื่อไม่ต้องการแก้ไขปัญหาอีกต่อไปคุณควรกู้คืน SSL-source:

sudo gem sources -r http://rubygems.org
sudo gem sources -a https://rubygems.org

ไม่ลงคะแนนเนื่องจากปัญหานี้เกิดขึ้นทันที แต่มันทำให้ทับทิมของคุณมีใบรับรองเก่าซึ่งยังคงไม่ดี
mpapis

1
ฉันได้อัปเดตคำตอบเพื่อพยายามทำให้ชัดเจนว่านี่เป็นเพียงวิธีแก้ปัญหาสำหรับปัญหาราก เพิ่งพยายามแก้ไขปัญหาของ Terin เมื่อเขาพยายามใช้แหล่งที่ไม่ใช่ SSL
Eduardo

5
FYI, ผมต้องทำและsudo gem sources -r https://rubygems.org/ sudo gem sources -r http://rubygems.org/สังเกตเห็นการตาม/มา
Ross Rogers

ใช่มันเป็นไปได้ ฉันคิดว่ามันขึ้นอยู่กับวิธีเพิ่มแหล่งที่มาในตอนแรก ฉันหมายความว่าถ้าแหล่งที่มาที่ถูกเพิ่มเข้ามาด้วยต่อท้ายก็ควรถูกลบออกด้วยต่อท้าย/ /
Eduardo

ทางออกเดียวที่ทำให้ฉันดาวน์โหลด fu @ ^! # gem ขอบคุณมาก!
Genarito

16

ใน Windows คุณจะต้องใช้HTTPแหล่งที่มาเพื่ออัปเดตแล้วเปลี่ยนกลับไปใช้gemHTTPS

gem sources -r https://rubygems.org/
gem sources -a http://rubygems.org/
gem update --system
gem sources -r http://rubygems.org/
gem sources -a https://rubygems.org/

แก้ไข: คำเตือนฉันไม่แน่ใจว่าปลอดภัยหรือไม่ ไม่มีใครรู้ว่าแพ็คเกจทับทิมถูกเซ็นชื่อหรือไม่? คำตอบที่ยอมรับดูเหมือนเป็นทางออกที่ดีกว่า


ขอบคุณสำหรับการแบ่งปัน; เปลี่ยน https เป็นการ http ชั่วคราว แต่ฉันต้องการเปลี่ยน gemfile โดยตรง
Noha Kareem

2
ในกรณีของฉันฉันต้องการการต่อท้าย / ด้วย URL url
Alwyn Schoeman

1
เป็นการปรับปรุงคำตอบนี้เป็นความคิดที่ดีก่อนที่คุณจะเริ่มgem sources -lเห็นแหล่งที่มาของคุณก่อนและหลังการอัพเดตระบบ หากการอัปเดตล้มเหลวให้ระบุหมายเลขเวอร์ชันหลังจาก --system ดูrubygems.org/gems/rubygems-update/versionsหรือถามเพื่อนร่วมงานเพื่อรับgem -vรายงานอะไร
Gary S. Weaver

10

สำหรับผู้ใช้ Windows (และอาจเป็นคนอื่น ๆ )

Rubygems.org มีคำแนะนำที่ไม่เพียง แต่อธิบายถึงวิธีการแก้ไขปัญหานี้ แต่ยังมีสาเหตุที่ทำให้คนจำนวนมาก: การปรับปรุงใบรับรอง SSL สาเหตุของปัญหาคือ rubygems.org เปลี่ยนเป็นใบรับรอง SSL ที่ปลอดภัยยิ่งขึ้น (SHA-2 ซึ่ง ใช้การเข้ารหัส 256 บิต) เครื่องมือบรรทัดคำสั่ง rubygems รวมการอ้างอิงกับใบรับรองที่ถูกต้อง ดังนั้น rubygems เองไม่สามารถอัปเดตได้โดยใช้ rubygems เวอร์ชั่นเก่ากว่า Rubygems ต้องอัปเดตด้วยตนเองก่อน

ก่อนอื่นให้ค้นหา rubygems ที่คุณมี:

rubygems v

ขึ้นอยู่กับว่าคุณมี 1.8.x, 2.0.x หรือ 2.2.x คุณจะต้องดาวน์โหลด gem ที่มีชื่อว่า "rubygems-update-XYZgem" โดยที่ XYZ เป็นรุ่นที่คุณต้องการ เล่น 1.8.x: ดาวน์โหลด: https://github.com/rubygems/rubygems/releases/tag/v1.8.30 ใช้งาน 2.0.x: ดาวน์โหลด: https://github.com/rubygems/rubygems/releases/tag/v2 .0.15 การ เรียกใช้ 2.2.x: ดาวน์โหลด: https://github.com/rubygems/rubygems/releases/tag/v2.2.3

ติดตั้ง update gem:

gem install –-local full_path_to_the_gem_file

เรียกใช้อัปเดตอัญมณี:

update_rubygems --no-ri --no-rdoc

ตรวจสอบว่า rubygems ได้รับการปรับปรุง:

rubygems v

ถอนการติดตั้ง update gem:

gem uninstall rubygems-update -x

ณ จุดนี้คุณอาจจะตกลง แต่เป็นไปได้ที่คุณไม่มีไฟล์พับลิกคีย์ล่าสุดสำหรับใบรับรองใหม่ เพื่อทำสิ่งนี้:

ดาวน์โหลดใบรับรองล่าสุด (ปัจจุบัน AddTrustExternalCARoot-2048.pem) จากhttps://rubygems.org/pages/download certs ทั้งหมดยังอยู่ที่: https://github.com/rubygems/rubygems/tree/master/lib/rubygems/ssl_certs

ค้นหาตำแหน่งที่จะนำไปใช้:

gem which rubygems

วางไฟล์นี้ในไดเรกทอรี“ rubygems \ ssl_certs” ที่ตำแหน่งนี้

ตามrubygems กระทำใบรับรองจะถูกย้ายไปยังไดเรกทอรีที่เฉพาะเจาะจงมากขึ้น ดังนั้นปัจจุบันใบรับรอง (AddTrustExternalCARoot-2048.pem) คาดว่าจะอยู่บนเส้นทางต่อไปนี้lib/rubygems/ssl_certs/rubygems.org/AddTrustExternalCARoot-2048.pem


2
raw.githubusercontent.com/rubygems/rubygems/master/lib/rubygems/ไม่อยู่อีกต่อไป
Phil O

8

ลองใช้เว็บไซต์ต้นทางสำหรับอัญมณีเช่น rubygems.org ใช้ http แทน https วิธีนี้ไม่เกี่ยวข้องกับงานใด ๆ เช่นการติดตั้ง certs และทุกอย่าง

ตัวอย่าง -

gem install typhoeus --source http://rubygems.org

ใช้งานได้ แต่มีข้อแม้หนึ่งข้อ

ติดตั้งอัญมณีแล้ว แต่เอกสารไม่ได้เกิดจากข้อผิดพลาดของใบรับรอง นี่คือข้อผิดพลาดที่ฉันได้รับ

Parsing documentation for typhoeus-0.7.0 WARNING: Unable to pull 
data from 'https://rubygems.org/': SSL_connect returned=1 errno=0 
state=SSLv3 read server certificate B: certificate verify failed 
(https://rubygems.org/latest_specs.4.8.gz)

7

ทำงานgem update --systemได้สำหรับฉัน


6
สิ่งนี้ใช้ได้สำหรับฉันเช่นกันบน Windows ฉันต้องเปลี่ยนเป็น HTTP คลาสสิกชั่วคราวจากนั้นอัปเดตจากนั้นเปลี่ยนกลับเป็น SSL
Tom Mayfield

1
ข้อผิดพลาด SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (https://api.rubygems.org/specs.4.8.gz)
สีเขียว

แหล่งที่มาของอัญมณี - ลบrubygems.orgแหล่งที่มาของอัญมณี -a rubygems.org การอัปเดตอัญมณี --system
Stefan Steiger

4

ตรวจสอบให้แน่ใจว่านาฬิการะบบของคุณถูกต้อง

ข้อผิดพลาดที่แน่นอนนี้เกิดขึ้นกับฉันในวันนี้บนเครื่องเสมือน Ubuntu ที่ทำงานบน VirtualBox ฉันลองวิธีการแก้ปัญหาส่วนใหญ่ที่แสดงด้านบนก่อนที่ฉันจะสังเกตเห็นว่าฉันได้กลับมาทำงานต่อจากสถานะที่เก่าแก่มากและนาฬิกาของฉันถูกปิดหลายวัน

การอัพเดตนาฬิกาจะแก้ไขปัญหาของฉันในทันที นี่คือคำสั่งที่ฉันใช้ในกรณีของฉัน:

บริการ sudo ntp หยุด && sudo ntpdate pool.ntp.org && บริการ sudo ntp เริ่มต้น


4

เพียงแค่ถอนการติดตั้งและติดตั้ง openssl กับ homebrew แก้ไขปัญหานี้ให้ฉัน

brew uninstall --force openssl

brew install openssl


1
กับรุ่นใหม่ของ homebrew คุณอาจจำเป็นต้องเรียกใช้คำสั่งเช่นดังนั้น: brew uninstall --ignore-dependencies openssl(ซึ่งเป็นเทียบเท่าของเดิมforceธง)
Batkins

3

สำหรับผู้ใช้งาน Fedora

อัปเดตเป็นcert.pemไฟล์ใหม่ล่าสุดที่จัดหาโดย cURL: http://curl.haxx.se/ca/cacert.pem

curl -o `ruby -ropenssl -e 'p OpenSSL::X509::DEFAULT_CERT_FILE' |tr -d \"` http://curl.haxx.se/ca/cacert.pem

มี windows cmd หรือ powerhell เทียบเท่านี้หรือไม่
Erran Morad

3

หากคุณใช้ windows ให้เปิดhttps://rubygems.org/พร้อมกับ internet explorer

คลิกที่ข้อมูลความปลอดภัยและนำเข้าใบรับรอง บรรทัดล่างคือห่วงโซ่การรับรองของคุณล้าสมัยและคุณต้องเพิ่มใบรับรองใหม่นี้ โปรดจำไว้ว่านี่ไม่ใช่การละเมิดความปลอดภัยตราบใดที่คุณสามารถตรวจสอบใบรับรองที่เชื่อถือได้


ไม่ทำอะไรเลยสำหรับฉัน ... OpenSSL ใช้ที่เก็บใบรับรอง Windows หรือไม่
Julien Ruffin

2

ในกรณีของฉันใบรับรอง Ubuntu CA ล้าสมัยแล้ว ฉันแก้ไขได้โดยวิ่ง:

 sudo update-ca-certificates

2

วิธีการ / สายการบินเดียวที่สามารถดาวน์โหลดอัญมณีอัตโนมัติโดยใช้ HTTP แทน HTTPS:

printf -- '---\n:sources:\n- http://rubygems.org\n' | tee ~/.gemrc

ทำงานได้สมบูรณ์แบบถ้าคุณพบปัญหาในภาชนะนักเทียบท่า!
user7364588

1

กรณีเฉพาะของ RubyGems (เครื่องมือบรรทัดคำสั่ง) คือมันต้องการมัดภายในใบรับรองของรหัสเชื่อถือซึ่งอนุญาตให้ RubyGems สร้างการเชื่อมต่อกับเซิร์ฟเวอร์แม้ว่าระบบปฏิบัติการพื้นฐานไม่สามารถตรวจสอบข้อมูลประจำตัวของพวกเขาได้

จนถึงเมื่อไม่กี่เดือนที่ผ่านมาใบรับรองนี้จัดทำโดย CA หนึ่งใบ แต่ใบรับรองที่ใหม่กว่านั้นมอบให้โดยใบรับรองอื่น

ด้วยเหตุนี้การติดตั้ง RubyGems ที่มีอยู่จะต้องได้รับการอัปเดตก่อนเปลี่ยนใบรับรองและให้เวลาเพียงพอสำหรับการเปลี่ยนแปลงในการแพร่กระจาย (และผู้ที่จะอัปเดต)

ทุกคนสามารถหาวิธีแก้ปัญหาของเขาได้โดยทำตามขั้นตอนง่าย ๆ ตามลิงค์ด้านล่าง

https://gist.github.com/luislavena/f064211759ee0f806c88


1

ลอง

gem update --system

หวังว่ามันจะช่วยแก้ปัญหา


ใช้งานได้สำหรับฉัน ขอบคุณ อูบุนตู; apt install rubyทับทิมได้รับการติดตั้งโดยใช้
Marslo

ERROR: While executing gem ... (Gem::RemoteFetcher::FetchError) SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (https://api.rubygems.org/specs.4.8.gz)
Jonathan

1

ดาวน์โหลดไฟล์ cacert.pem จากhttp://curl.haxx.se/ca/cacert.pem http://curl.haxx.se/ca/cacert.pemบันทึกไฟล์นี้ไปที่ C: \ RailsInstaller \ cacert.pem

ในตอนนี้ให้ทับทิมรับรู้ถึงชุดใบรับรองผู้ออกใบรับรองของคุณด้วยการตั้งค่า SSL_CERT_FILE หากต้องการตั้งค่านี้ในเซสชันพรอมต์คำสั่งปัจจุบันของคุณให้พิมพ์:

ตั้งค่า SSL_CERT_FILE = C: \ RailsInstaller \ cacert.pem


0

ฉันมีปัญหาเดียวกันขณะที่พยายามติดตั้งแตงกวาอัญมณี อย่างไรก็ตามฉันสังเกตเห็นว่า bundler gem ติดตั้งแล้วกับ ruby ​​2.0 ฉันสร้าง Gemfile.rb ในโฟลเดอร์โครงการที่มีอัญมณีที่จำเป็นและทำตามขั้นตอนนี้

  1. นำทางไปยังโฟลเดอร์โครงการ
  2. พิมพ์การติดตั้งมัด

พลอยที่จำเป็นทั้งหมดติดตั้ง


0

สำหรับ Illumos / Solaris โดยใช้ OpenCSW pkgutil:

ติดตั้ง CSWcacertificates ก่อนหน้า 'gem install'

pkgutil -yi CSWcacertificates

หากคุณใช้ชุดทับทิมที่ไม่ได้มาจาก OpenCSW รุ่นทับทิมของคุณอาจคาดว่าจะพบไฟล์ใบรับรองในที่อื่น ในกรณีนี้ฉันเพียงแค่ symlinked /etc/opt/csw/ssl/cert.pem ของ OpenCSW ไปยังตำแหน่งที่ต้องการ

ตรวจสอบว่าทับทิมจะหาที่ไหน:

export cf=`ruby -ropenssl -e 'puts OpenSSL::X509::DEFAULT_CERT_FILE'` && echo $cf

จากนั้นหากมีความคลาดเคลื่อนให้เชื่อมโยง:

ln -s /etc/opt/csw/ssl/cert.pem $cf && file $cf


0

สำหรับผู้ใช้ Windows:

หลังจากติดตั้ง Ruby 2.2.3 (+ rubygems 2.5.1) เรียบร้อยแล้วบนเครื่องทดสอบที่เข้าถึงอินเทอร์เน็ตฉันมีข้อผิดพลาด SSL นี้เมื่อฉันติดตั้ง Bundler บนเครื่องที่ผลิตภายในเครือข่าย

เนื่องจากฉันมีข้อ จำกัด ในการเข้าถึงเครือข่ายและไม่มีวิธีใดในการเปลี่ยนการตั้งค่าสำหรับการเข้าถึง SSL และตามข้อผิดพลาดฉันทำขั้นตอนด้านล่างเพื่อให้สามารถติดตั้ง Bundler จนเสร็จ (อาจจะฟังดูบ้า แต่มัน ทำงาน ... )

ผ่านเครื่องที่เข้าถึงอินเทอร์เน็ตได้ไม่ จำกัด ดาวน์โหลดไฟล์ต่อไปนี้:

ฉันเพิ่มไฟล์เหล่านี้บนเซิร์ฟเวอร์อินทราเน็ตทำให้โครงสร้างโฟลเดอร์ของลิงก์ด้านบน:

  • $ INTRANET_HOME

spec.4.8.gz และ latest_specs.4.8.gz

  • $ INTRANET_HOME \ รวดเร็ว \ Marshal.4.8

Bundler-1.11.2.gemspec.rz

  • $ INTRANET_HOME \ อัญมณี

Bundler-1.11.2.gem

จากนั้นฉันเพิ่มอินทราเน็ตของฉันเพื่อเข้าถึงแหล่งอัญมณี:

gem sources -a http://mydomain.com.br

ฉันทำงานด้วยความสำเร็จของ "gem install bundler" หลังจากการติดตั้งสิ่งที่ต้องทำทั้งหมดคือลบอินทราเน็ตของฉันของ gem:

gem sources -r http://mydomain.com.br

ฉันหวังว่าจะเป็นประโยชน์ในสถานการณ์ที่คล้ายกันใด ๆ ....


0

ในฐานะผู้ใช้ Windows 10 ฉันทำตามคำตอบของ Dheerendra และใช้งานได้ในวันหนึ่ง ในวันถัดไปฉันพบปัญหาอีกครั้งและการแก้ไขของเขาไม่ทำงาน สำหรับฉันการแก้ไขคือการปรับปรุงbundlerด้วย:

gem update bundler

ฉันเชื่อว่ารุ่นของฉันbundlerมีอายุมากกว่าสองสามเดือน


0

ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง ruby ​​ด้วยตัวเลือก--disable-binaryถ้าไม่ให้ถอนการติดตั้งและติดตั้งใหม่ด้วยตัวเลือก

ข้อมูลเพิ่มเติมที่นี่


0

คำตอบไม่ถูกต้องอีกต่อไป เนื่องจากฉันพบปัญหากับWindows ruby รุ่นเก่าตอนนี้ฉันจะโพสต์คำตอบ

เมื่อฉันต้องการติดตั้ง activesupport gem:

gem in activesupport --version 5.1.6

ERROR:  Could not find a valid gem 'activesupport' (= 5.1.6), here is why:
          Unable to download data from https://rubygems.org/ - SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B
: certificate verify failed (https://api.rubygems.org/specs.4.8.gz)

ขั้นตอนต่อไปนี้จำเป็นต้องคัดลอกใบรับรองจาก windows ruby ​​ที่ใหม่กว่าเท่านั้น ใช้ทับทิมล่าสุด (หรืออย่างน้อยทับทิม2.4.0 ) และทำสิ่งต่อไปนี้:

คัดลอกใบรับรองจากไดเรกทอรีเหล่านี้ (ปรับให้เข้ากับความต้องการของคุณ):
C:\prg_sdk\rubies\Ruby-2.4\lib\ruby\2.4.0\rubygems\ssl_certs\rubygems.org
C:\prg_sdk\rubies\Ruby-2.4\lib\ruby\2.4.0\rubygems\ssl_certs\index.rubygems.org

ไปยังปลายทาง (ปรับอีกครั้งตามที่คุณต้องการ):
C:\prg_sdk\rubies\Ruby231-p112-x64\lib\ruby\2.3.0\rubygems\ssl_certs

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.