อัปเดต: ฉันได้เขียนคำอธิบายโดยละเอียดเกี่ยวกับวิธีต่างๆที่คุณสามารถติดตั้ง Ruby gems บนเครื่อง Mac คำแนะนำเดิมของฉันในการใช้สคริปต์ยังคงมีอยู่ แต่บทความของฉันมีรายละเอียดเพิ่มเติม: https://www.moncefbelyamani.com/the-definitive-guide-to-installing-ruby-gems-on-a-mac/
คุณคิดถูกแล้วที่ macOS จะไม่ยอมให้คุณเปลี่ยนแปลงอะไรเลยกับเวอร์ชัน Ruby ที่ติดตั้งมากับ Mac ของคุณ อย่างไรก็ตามเป็นไปได้ที่จะติดตั้งอัญมณีเช่นการbundler
ใช้ Ruby เวอร์ชันแยกต่างหากที่ไม่รบกวนการใช้งานของ Apple
การใช้sudo
เพื่อติดตั้งอัญมณีหรือเปลี่ยนสิทธิ์ของไฟล์ระบบและไดเร็กทอรีเป็นสิ่งที่ไม่แนะนำอย่างยิ่งแม้ว่าคุณจะรู้ว่ากำลังทำอะไรอยู่ก็ตาม เราช่วยหยุดให้คำแนะนำที่ไม่ดีนี้ได้ไหม นี่คือบทความโดยละเอียดที่ฉันเขียนแสดงวิธีsudo gem install
ล้างคอมพิวเตอร์ของคุณ: https://www.moncefbelyamani.com/why-you-should-never-use-sudo-to-install-ruby-gems/
การแก้ปัญหาประกอบด้วยสองขั้นตอนหลัก:
- ติดตั้ง Ruby เวอร์ชันแยกต่างหากที่ไม่รบกวนกับรุ่นที่มาพร้อมกับ Mac ของคุณ
- อัปเดตของคุณ
PATH
เพื่อให้ตำแหน่งของ Ruby เวอร์ชันใหม่เป็นอันดับแรกในไฟล์PATH
. เครื่องมือบางอย่างทำสิ่งนี้ให้คุณโดยอัตโนมัติ หากคุณไม่คุ้นเคยกับการPATH
และวิธีการทำงานอ่านของฉันคู่มือ
มีหลายวิธีในการติดตั้ง Ruby บนเครื่อง Mac วิธีที่ดีที่สุดที่ฉันแนะนำและฉันหวังว่าจะแพร่หลายมากขึ้นในคำแนะนำการติดตั้งต่างๆที่มีอยู่นั่นคือการใช้สคริปต์อัตโนมัติที่จะตั้งค่าสภาพแวดล้อม Ruby ที่เหมาะสมสำหรับคุณ สิ่งนี้ช่วยลดโอกาสในการเกิดข้อผิดพลาดได้อย่างมากเนื่องจากคำแนะนำที่ไม่เพียงพอซึ่งทำให้ผู้ใช้ทำสิ่งต่างๆด้วยตนเองและปล่อยให้พวกเขาทำตามขั้นตอนที่จำเป็นทั้งหมด
เส้นทางอื่นที่คุณทำได้คือใช้เวลาเพิ่มทำทุกอย่างด้วยตนเองและหวังว่าจะได้สิ่งที่ดีที่สุด ขั้นแรกคุณจะต้องติดตั้งHomebrewซึ่งจะติดตั้งเครื่องมือบรรทัดคำสั่งที่จำเป็นต้องมีและทำให้ง่ายต่อการติดตั้งเครื่องมือที่จำเป็นอื่น ๆ
จากนั้นสองวิธีที่ง่ายที่สุดในการติดตั้ง Ruby เวอร์ชันแยกต่างหากคือ:
หากคุณต้องการความยืดหยุ่นในการสลับระหว่าง Ruby เวอร์ชันต่างๆได้อย่างง่ายดาย [แนะนำ]
เลือกหนึ่งในสี่ตัวเลือกเหล่านี้:
- chrubyและruby-install - คำแนะนำส่วนตัวของฉันและคำแนะนำที่สคริปต์ของฉันติดตั้งโดยอัตโนมัติ สิ่งเหล่านี้สามารถติดตั้งกับ Homebrew:
brew install chruby ruby-install
หากคุณเลือกchruby
และruby-install
คุณสามารถติดตั้ง Ruby ล่าสุดได้ดังนี้:
ruby-install ruby
เมื่อคุณติดตั้งทุกอย่างและกำหนดค่าของคุณ.zshrc
หรือ.bash_profile
ตามคำแนะนำจากเครื่องมือด้านบนแล้วให้ปิดและรีสตาร์ท Terminal จากนั้นเปลี่ยนไปใช้ Ruby เวอร์ชันที่คุณต้องการ ในกรณีของchruby
มันจะเป็นดังนี้:
chruby 2.7.2
ไม่ว่าคุณจะต้องกำหนดค่า.zshrc
หรือ.bash_profile
ขึ้นอยู่กับเชลล์ที่คุณใช้ หากคุณไม่แน่ใจโปรดอ่านคู่มือนี้: https://www.moncefbelyamani.com/which-shell-am-i-using-how-can-i-switch/
หากคุณแน่ใจว่าคุณไม่ต้องการ Ruby มากกว่าหนึ่งเวอร์ชันในเวลาเดียวกัน (นอกเหนือจากเวอร์ชันที่มาพร้อมกับ macOS)
- ติดตั้งทับทิมด้วย Homebrew:
brew install ruby
จากนั้นอัปเดตของคุณPATH
โดยเรียกใช้ (แทนที่2.7.0
ด้วยเวอร์ชันที่ติดตั้งใหม่ของคุณ):
echo 'export PATH="/usr/local/opt/ruby/bin:/usr/local/lib/ruby/gems/2.7.0/bin:$PATH"' >> ~/.zshrc
จากนั้น "รีเฟรช" เชลล์ของคุณเพื่อให้การเปลี่ยนแปลงเหล่านี้มีผล:
source ~/.zshrc
หรือคุณสามารถเปิดแท็บเทอร์มินัลใหม่หรือปิดและรีสตาร์ท Terminal
แทนที่.zshrc
ด้วย.bash_profile
ถ้าคุณใช้ Bash หากคุณไม่แน่ใจว่ากำลังใช้เชลล์ใดโปรดอ่านคู่มือนี้: https://www.moncefbelyamani.com/which-shell-am-i-using-how-can-i-switch/
ในการตรวจสอบว่าคุณกำลังใช้ Ruby เวอร์ชันที่ไม่ใช่ระบบคุณสามารถรันคำสั่งต่อไปนี้:
which ruby
มันควรจะเป็นอย่างอื่นที่ไม่ใช่ /usr/bin/ruby
ruby -v
ควรเป็นอย่างอื่นที่ไม่ใช่ 2.6.3 หากคุณใช้ macOS Catalina ณ วันนี้ 2.7.2 เป็น Ruby เวอร์ชันล่าสุด
เมื่อคุณติดตั้ง Ruby เวอร์ชันใหม่แล้วตอนนี้คุณสามารถติดตั้ง Bundler (หรืออัญมณีอื่น ๆ ) ได้:
gem install bundler
rbenv
ที่มาecho 'eval "$(rbenv init -)"' >> ~/.bash_profile