จะอัปเดต Ruby เป็น 1.9.x บน Mac ได้อย่างไร


107

ฉันได้สร้างบัญชีผู้ใช้ใหม่บนเครื่อง Mac ของฉันแล้วและฉันกำลังพยายามอัปเดต Ruby เป็นเวอร์ชันปัจจุบัน (1.9.2) จากค่าเริ่มต้นของเสือดาวหิมะที่ 1.8.7 ใครช่วยชี้ให้ฉันดูบทช่วยสอนหรืออธิบายวิธีที่ดีที่สุดในการอัปเดต Ruby บน mac ของฉันจาก 1.8 เป็น 1.9.2 ได้ไหม ขอบคุณ

คำตอบ:


66

ฉันจะให้คำแนะนำที่แข็งแกร่งสำหรับRVM

เป็นวิธีที่ยอดเยี่ยมในการจัดการทับทิมและอัญมณีหลายชุดโดยไม่ชนกับเวอร์ชันของระบบ


ฉันจะเพิ่มว่าตอนนี้ (4/2/2556) ฉันใช้rbenv บ่อยมากเพราะความต้องการของฉันเรียบง่าย RVM นั้นยอดเยี่ยม แต่มีความสามารถมากมายที่ฉันไม่เคยต้องการดังนั้นฉันจึงมีมันในบางเครื่องและ rbenv บนเดสก์ท็อปและแล็ปท็อปของฉัน ควรตรวจสอบทั้งสองอย่างและดูว่าสิ่งใดดีที่สุดสำหรับความต้องการของคุณ


เห็นด้วย และแม้ว่าหลายเวอร์ชันจะไม่เป็นปัญหา (ฮ่า!) rvm นั้นยอดเยี่ยมสำหรับการค้นหาว่าไลบรารีเนทีฟใดหายไป ที่ขาดไม่ได้เลยทีเดียว
Isaac Rabinovitch

198

ตามที่The Tin Manแนะนำ (ด้านบน) RVM ( Ruby Version Manager ) เป็นมาตรฐานสำหรับการอัพเกรดการติดตั้ง Ruby บน OSX: https://rvm.io

ในการเริ่มต้นให้เปิดหน้าต่างเทอร์มินัลและออกคำสั่งต่อไปนี้:

\curl -L https://get.rvm.io | bash -s stable --ruby

(คุณจะต้องไว้วางใจทีม RVM Dev Team ว่าคำสั่งไม่เป็นอันตราย - หากคุณเป็นเพนกวินที่หวาดระแวงเหมือนฉันคุณสามารถอ่านแหล่งที่มา : https://github.com/wayneeseguin/rvm ) เมื่อเสร็จสมบูรณ์ คุณต้องรีสตาร์ทเทอร์มินัลเพื่อให้rvmคำสั่งทำงาน

rvm list known

(แสดงเวอร์ชันล่าสุดของ Ruby)

rvm install ruby-2.3.1

สำหรับเวอร์ชันเฉพาะตามด้วย

rvm use ruby-2.3.1

หรือหากคุณต้องการเพียงเวอร์ชันล่าสุด (ปัจจุบัน):

rvm install current && rvm use current

(ติดตั้งเวอร์ชันเสถียรในปัจจุบัน - ในขณะที่เขียน Ruby-2.3.1 - โปรดอัปเดตวิกินี้เมื่อมีเวอร์ชันใหม่ออกมา)

หมายเหตุเกี่ยวกับการรวบรวม Ruby : ในกรณีของฉันฉันต้องติดตั้งHomebrew http://mxcl.github.com/homebrew/เพื่อรับอัญมณีที่ฉันต้องการ ( RSpec ) ซึ่งจะบังคับให้คุณติดตั้งXcode (หากคุณยังไม่ได้ติดตั้ง) https://itunes.apple.com/us/app/xcode/id497799835 และ / หรือติดตั้งแพ็คเกจ GCC จาก: https://github.com/kennethreitz/osx-gcc-installerเพื่อหลีกเลี่ยงข้อผิดพลาดที่เรียกใช้ " make "

แก้ไข:ในฐานะของMavericksคุณสามารถเลือกที่จะติดตั้งเฉพาะเครื่องมือบรรทัดคำสั่ง Xcode แทนแพ็คเกจ Xcode ทั้งหมดซึ่งมาพร้อมกับ gcc และสิ่งอื่น ๆ อีกมากมายที่คุณอาจต้องการสำหรับการสร้างแพ็คเกจ สามารถติดตั้งได้โดยเรียกใช้xcode-select --installและทำตามคำแนะนำบนหน้าจอ

หมายเหตุเกี่ยวกับ erros : หากคุณได้รับข้อผิดพลาด " RVM ไม่ใช่ฟังก์ชัน " ขณะลองใช้คำสั่งนี้โปรดไปที่: ฉันจะเปลี่ยนเวอร์ชัน Ruby โดยใช้ RVM ได้อย่างไร สำหรับการแก้ปัญหา


การตั้งค่าทั้งหมดนี้บน Mountain Lion ต้องใช้ความอดทนสูง หากคุณพบข้อผิดพลาด "Error running 'env GEM_PATH = / Users / ... " มันไม่ใช่เส้นทางของคุณและคุณจะเห็นในบันทึกว่าเป็นไปได้ว่า openssl (ซึ่งอาจติดตั้งอยู่) ถูกจับใน RVM และมีการระบุ page on working through it rvm.io/packages/openssl
Dylan Valade

4
ฉันเกลียดความยุ่งเหยิงที่เป็นรูบี้อย่างแท้จริง มันเป็นโกลาหล อย่างไรก็ตามคำตอบนี้ทำให้ฉันมาถูกทางและขอบคุณมากสำหรับสิ่งนั้น!
Ian Lewis

1
เดินไปมาระหว่างโพสต์ที่นำฉันไปสู่ปัญหาอื่น ๆ ฉันพบว่าสิ่งนี้มีประโยชน์มากเนื่องจากอธิบายวิธีใช้ RVM ไม่ใช่แค่ใช้เท่านั้น
Hector Ordonez

19

ด้วยการชงนี่คือซับเดียว:

(สมมติว่าคุณได้แตะ homebrew / เวอร์ชันซึ่งสามารถทำได้โดยการเรียกใช้brew tap homebrew/versions)

brew install ruby193

ทำงานนอกกรอบสำหรับฉันบน OS X 10.8.4 หรือถ้าคุณต้องการ 2.0 คุณก็แค่brew install ruby

โดยทั่วไปจะbrew search rubyแสดงให้คุณเห็น repos ต่างๆที่มีอยู่และหากคุณต้องการเจาะจงจริงๆคุณสามารถใช้brew versions rubyและชำระเงินเวอร์ชันที่เฉพาะเจาะจงแทนได้


1
หนึ่งซับที่ยอดเยี่ยมสำหรับการติดตั้งทับทิมรุ่นเฉพาะ ! การสลับระหว่างรุ่นทับทิมกับการชงไม่ใช่เรื่องง่าย ... stackoverflow.com/questions/8730676
nelsonic

4

ฉันรู้ว่ามันเป็นโพสต์ที่เก่ากว่า แต่ฉันต้องการเพิ่มข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนั้น ประการแรกฉันคิดว่าrvmมันทำได้ดีมากแต่มันไม่ได้อัปเดตทับทิมจากระบบของฉัน (MAC OS Yosemite)

สิ่งที่rvmกำลังทำอยู่: ติดตั้งไปยังตำแหน่งอื่นและการตั้งค่าเส้นทางที่มีให้กับตัวแปรสภาพแวดล้อมของฉัน ... และผมก็เบื่อครับเพราะผมมีสองทับทิมตอนนี้ในระบบของฉัน

ดังนั้นเพื่อแก้ไขปัญหาที่ผมถอนการติดตั้งrvmใช้แล้วแพคเกจผู้จัดการ Homebrew ใช้ได้ที่นี่brew install rubyและติดตั้งทับทิมโยนคำสั่งมินัลด้วยการทำ

จากนั้นทุกอย่างก็ทำงานได้อย่างสมบูรณ์แบบ! ทับทิมจากระบบของฉันได้รับการอัปเดตแล้ว! หวังว่ามันจะช่วยสำหรับนักผจญภัยคนต่อไป!


1
ฉันกำลังดิ้นรนเพื่อตัดสินใจว่าควรใช้rvmหรือbrew. สิ่งนี้ช่วยได้ ขอบคุณ
unifreak

ไม่ชงยังทำแบบเดียวกัน?
anon

3

ฉันจะไม่เห็นด้วยกับ The Tin Man ที่นี่ ฉันถือว่าrbenvดีกว่า RVM rbenvไม่รบกวนเชลล์ของคุณอย่างมากเหมือนอย่างที่ RVM ทำและช่วยให้คุณสามารถเพิ่มการติดตั้ง Ruby แยกต่างหากในโฟลเดอร์ธรรมดาที่คุณสามารถตรวจสอบได้โดยตรง ช่วยให้คุณสามารถรวบรวม Ruby ด้วยตัวคุณเอง สรุปความแตกต่างที่ดีได้ที่นี่: https://github.com/sstephenson/rbenv/wiki/Why-rbenv%3F

ผมให้คำแนะนำสำหรับการรวบรวมทับทิม 1.9 สำหรับ rbenv ที่นี่ นอกจากนี้ข้อมูลรายละเอียดเพิ่มเติมที่นี่ ฉันใช้เทคนิคนี้กับ Snow Leopard, Lion และ Mountain Lion ได้สำเร็จ


1
ในตอนแรกที่ถามคำถามนี้ rbenv ไม่ใช่ตัวเลือก เวลาเปลี่ยนเช่นเดียวกับรหัส RVM ยังคงเป็นทางเลือกที่ดี แต่ก็มีน้ำหนักมากเมื่อเทียบกับ rbenv ฉันใช้ทั้งสองอย่างในเครื่องที่แตกต่างกันเพราะทั้งคู่มีประโยชน์ในรูปแบบที่แตกต่างกัน
The Tin Man

2

บทความ Hivelogic แดนเบนจามินติดตั้งทับทิม RubyGems และทางรถไฟกับเสือดาวหิมะเป็นสถานที่แนะนำไปแม้ว่าบทความเป็น 1.8 เพื่อให้ที่นี่เป็นทับทิม 1.9 เฉพาะติดตั้งบนเสือดาวหิมะ ระวังสิ่ง 64 บิต ... ไม่ว่าจะไป 'อ้วน' แบบ 64 บิตทั้งหมด (เช่น - Apache บน OS X ซึ่งอาจทำให้เกิดปัญหากับไลบรารี 32 บิต) หรือตรวจสอบอัญมณีที่คุณมี เพื่อใช้ตรวจสอบให้แน่ใจว่าใช้ได้สำหรับ 64 บิต



0

ตามที่กล่าวไว้ก่อนหน้านี้เวอร์ชันบันเดิลเลอร์อาจสูงเกินไปสำหรับรางเวอร์ชันของคุณ

ฉันพบปัญหาเดียวกันโดยใช้ Rails 3.0.1 ซึ่งต้องใช้ Bundler v1.0.0 - v1.0.22

ตรวจสอบเวอร์ชันบันเดิลเลอร์ของคุณโดยใช้: gem list bundler

หากเวอร์ชันบันเดิลเลอร์ของคุณไม่อยู่ในช่วงที่เหมาะสมฉันพบว่าโซลูชันนี้ใช้งานได้: rvm @global do gem uninstall bundler

หมายเหตุ: rvm เป็นสิ่งจำเป็นสำหรับโซลูชันนี้ ... อีกกรณีหนึ่งสำหรับเหตุผลที่คุณควรใช้ rvm ตั้งแต่แรก


0

มีหลายผู้จัดการรุ่นอื่น ๆ เพื่อพิจารณาจะดูไม่กี่ตัวอย่างและหนึ่งที่ไม่ได้มีการระบุไว้ว่าผมจะให้ลองเร็ว ๆ นี้จะCH-ทับทิม ฉันลอง rbenv แต่มีปัญหามากเกินไป RVM เป็นแกนนำของฉันแม้ว่าบางครั้งมันจะมีปัญหาแปลก ๆ ก็ตาม (ดังนั้นฉันจึงอยากลอง ch-ruby เมื่อมีโอกาส) ฉันจะไม่แตะต้องระบบ Ruby เพราะอย่างอื่นอาจต้องพึ่งพามัน

ฉันควรเพิ่มฉันยังรวบรวม Ruby ของตัวเองหลายครั้งและการใช้บทความ Hivelogic (ตามที่ Dave Everitt แนะนำ) เป็นความคิดที่ดีหากคุณใช้เส้นทางนั้น

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