Ruby เวอร์ชันปัจจุบันของฉันคือruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-darwin10.5.0]
แต่ฉันต้องการอัปเดตเป็นระดับแพตช์ล่าสุดโดยใช้ rvm ฉันจะทำเช่นนี้ได้อย่างไร?
Ruby เวอร์ชันปัจจุบันของฉันคือruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-darwin10.5.0]
แต่ฉันต้องการอัปเดตเป็นระดับแพตช์ล่าสุดโดยใช้ rvm ฉันจะทำเช่นนี้ได้อย่างไร?
คำตอบ:
แรกของทุกปรับปรุงการติดตั้ง RVM rvm get stable
ของคุณโดยใช้
เพื่อให้แน่ใจว่าคุณใช้ RVM เวอร์ชันใหม่คุณจะต้องเรียกใช้rvm reload
(หรือเพียงแค่เปิดเทอร์มินัลใหม่)
หลังจากที่ทำคุณสามารถขอ RVM to list rvm list known
รุ่นทับทิมที่มีการติดตั้งโดยการทำงาน
ในผลลัพธ์คุณควรเห็น:
# MRI Rubies
...
[ruby-]1.9.2[-p320]
...
วงเล็บเหลี่ยมรอบ ๆ ระดับแพตช์ระบุว่านี่คือระดับแพตช์เริ่มต้นของ RVM สำหรับ Ruby 1.9.2
ในที่สุดเพื่อติดตั้ง Ruby เวอร์ชันใหม่เพียงแค่เรียกใช้rvm install 1.9.2
- และรอให้รวบรวม!
อัพเกรดล่ามทับทิมและเก็บอัญมณีที่มีอยู่:
$ rvm upgrade 1.9.2-p0 1.9.2
Are you sure you wish to upgrade from ruby-1.9.2-p0 to ruby-1.9.2-p136? (Y/n): Y
เพื่อแทนที่ด้วยรุ่นล่าสุดที่เสถียรของ 1.9.2 สิ่งนี้หลีกเลี่ยงความยุ่งเหยิง
เคล็ดลับที่เป็นประโยชน์เพิ่มเติมขอบคุณความคิดเห็น (@Mauro, @James, @ACB)
$ rvm list known
# NOTE: you probably want to upgrade your rvm first, as the list of known rubies seems to be coupled to the rvm version.
$ rvm get stable
$ rvm list known #pick your ruby
rvm list known
ดูเวอร์ชันทับทิมที่มีให้ซึ่งคุณสามารถอัปเกรดได้
การอัปเดตครั้งแรก RVM:
rvm get stable
จากนั้นอัปเดตเวอร์ชัน Ruby ของคุณ:
rvm upgrade 2.0.0
เลือกใช่สำหรับคำถามทั้งหมด:
Are you sure you wish to upgrade from ruby-2.0.0-p195 to ruby-2.0.0-p247? (Y/n): Y
Are you sure you wish to MOVE gems from ruby-2.0.0-p195 to ruby-2.0.0-p247?
This will overwrite existing gems in ruby-2.0.0-p247 and remove them from ruby-2.0.0-p195 (Y/n): Y
Do you wish to move over aliases? (Y/n): Y
Do you wish to move over wrappers? (Y/n): Y
Do you also wish to completely remove ruby-2.0.0-p195 (inc. archive)? (Y/n): Y
หากคุณต้องการอัปเดตอัญมณีของคุณเป็นเวอร์ชันล่าสุดคุณสามารถทำได้:
rvm all do gem update
แก้ไข: ฉันเพิ่งทำสิ่งนี้ในวันนี้สำหรับ Ruby 2.0.0 เวอร์ชันล่าสุด (ฉันอัปเดตจาก Ruby-2.0.0-p195 เป็น Ruby-2.0.0-p353) หลังจากนั้นฉันได้รับข้อผิดพลาดในการแบ่งกลุ่มเมื่อฉันพยายามอัปเดตอัญมณี สิ่งนี้เกิดขึ้นเนื่องจากอัญมณีได้รับการติดตั้งสำหรับ Ruby-2.0.0-p195 และอัญมณีบางชนิดไม่สามารถใช้ร่วมกับ p353 ได้
ตอนนี้คุณสามารถไปหาอัญมณีที่เข้ากันไม่ได้ แต่วิธีแก้ปัญหาที่ง่ายที่สุดคือเอาอัญมณีที่ติดตั้งทั้งหมดออกแล้วติดตั้งใหม่อีกครั้ง ฉันเพิ่งลบgems/ruby-2.0.0-p353
ไดเร็กทอรีที่อยู่ใน/usr/local/rvm
. อาจเป็นที่อื่นสำหรับคุณ
จากนั้นฉันวิ่งและสำหรับแต่ละรางของฉันฉันไม่ปพลิเคชันgem install bundler
bundle install
แบบนี้:
rvm update; rvm reload
rvm install ruby-1.9.2-p136
rvm --default ruby-1.9.2-p136
คุณสามารถติดตั้งแพทช์ระดับโดยทำตามหน้าในของพวกเขาวิกิพีเดีย
นอกจากนี้ทับทิมแต่ละเม็ดยังมีความเป็นอิสระดังนั้นคุณจึงไม่ได้ 'อัปเกรดและรักษาอัญมณี' แต่ติดตั้งแพทช์เวอร์ชันใหม่จากนั้นติดตั้งอัญมณีในสภาพแวดล้อมทับทิมใหม่นั้น
นี่อาจเป็นอัญมณีที่เข้ามามีบทบาท แต่ฉันไม่ได้ใช้มัน
อย่าลืมอัพเดท rvm ด้วยเผื่อว่ามันผ่านไปสักพัก
คำตอบ npad แน่นอนออกวางพื้นฐานดังนั้นฉันจะไม่ย้ำทำตามขั้นตอนเหล่านั้น rvm upgrade
แต่มีหลายคำตอบที่นี่แนะนำการใช้ ฉันรู้ว่า rvm ให้ตัวเลือกแก่คุณ แต่มันค่อนข้างอันตราย
IMO, ปลอดภัยและอื่น ๆ "วิธี RVM" คือครั้งแรกrvm install
รุ่นทับทิมใหม่แล้วใช้rvm gemset copy
คำสั่งเพื่อคัดลอก gemset ของคุณ (s) rvm gemset copy 1.9.2-p0@some-gemset 1.9.2-p290@some-gemset
รุ่นทับทิมใหม่เช่น จากนั้นคุณสามารถเปลี่ยนโปรเจ็กต์ของคุณไปใช้ gemset ที่คัดลอกใหม่ได้อย่างง่ายดาย (ขอแนะนำให้ใช้.rvmrc
ไฟล์ในไดเร็กทอรีโปรเจ็กต์ของคุณ) และดูว่าโค้ดของคุณล้มเหลวหรือไม่ ถ้าเป็นเช่นนั้นการเปลี่ยนกลับไปใช้ทับทิมรุ่นเก่าก็เป็นเพียงแค่การเปลี่ยนอัญมณีเท่านั้น
แต่แม้ว่าคุณจะไม่ได้ใช้อัญมณี (แม้ว่าฉันจะถือว่าคุณทำตั้งแต่คุณติดแท็กรางในคำถามนี้) การใช้rvm upgrade
อาจทำให้เกิดความล้มเหลวโดยไม่คาดคิด และหากโค้ดของคุณแตกตอนนี้คุณต้องติดตั้งเวอร์ชันเก่าอีกครั้ง เพียงแค่ใช้เวลาเพิ่มขึ้นเล็กน้อยและทำด้วยวิธีที่สะอาด
โพสต์บล็อกนี้น่าจะเป็นประโยชน์: http://pogodan.com/blog/2011/09/06/ruby-1-9-3-for-development
ข้อมูลสำคัญ:
rvm get head
rvm reload
wget https://gist.github.com/raw/1008945/4edd1e1dcc1f0db52d4816843a9d1e6b60661122/ruby-1.9.2p290.patch
rvm install ruby-1.9.2-p290 --patch ruby-1.9.2p290.patch -n patched
rvm get latest
/rvm get head
เป็นวิธีที่ถูกต้องในการอัพเกรด rvm ตอนนี้