ใช้ไฟล์ rvmrc หรือ ruby-version เพื่อตั้งค่า project gemset ด้วย RVM หรือไม่


230

ฉันใช้ RVM ผู้จัดการทับทิมเวอร์ชันเพื่อระบุรุ่นทับทิมและชุดอัญมณีสำหรับโครงการ Rails ของฉัน

ฉันมี.rvmrcไฟล์ให้เลือกรุ่น Ruby และ gemset โดยอัตโนมัติทุกครั้งที่ฉันcdเข้าสู่ไดเรกทอรีโครงการ

หลังจากติดตั้ง RVM 1.19.0 ฉันได้รับข้อความ

คุณกำลังใช้.rvmrcก็ต้องไว้วางใจก็จะช้าและมันเข้ากันไม่ได้กับผู้จัดการทับทิมอื่น ๆ ที่คุณสามารถสลับไป .ruby-versionใช้rvm rvmrc to [.]ruby-versionหรือไม่สนใจคำเตือนนี้กับrvm rvmrc warning ignore /Users/userName/code/railsapps/rails-prelaunch-signup/.rvmrc, .rvmrcจะยังคงเป็นไฟล์โครงการเริ่มต้นใน RVM ที่ 1 และ RVM 2 ที่จะไม่สนใจ rvm rvmrc warning ignore all.rvmrcsคำเตือนสำหรับไฟล์ทั้งหมดที่ทำงาน

ฉันควรใช้.rvmrcไฟล์ต่อไปหรือเปลี่ยนเป็น.ruby-versionไฟล์? อันไหนดีที่สุด? อะไรคือสาขาย่อย

คำตอบ:


372

หาก.rvmrcไฟล์ของคุณมีรหัสเปลือกที่กำหนดเองให้ใช้งานต่อไป.rvmrcเพราะจะช่วยให้คุณสามารถรวมรหัสเปลือกใด ๆ

ถ้าเป้าหมายของคุณเท่านั้นที่จะสลับรุ่นทับทิมแล้วใช้.ruby-versionซึ่งสนับสนุนโดยรุ่นอื่น ๆ ที่สวิตทับทิมเช่นrbenvหรือchruby ไฟล์นี้ไม่จำเป็นต้องเชื่อถือเนื่องจากเป็นเพียงชื่อของรุ่น Ruby และจะไม่ถูกดำเนินการในทางใดทางหนึ่ง

หากคุณใช้.ruby-versionคุณสามารถรวม@gemsetไว้ในไฟล์ได้ แต่สิ่งนี้จะไม่สามารถทำงานร่วมกับตัวสลับอื่น ๆ ได้ เพื่อรักษาความเข้ากันได้ใช้ชื่อ gemset ในแฟ้มแยกต่างหาก.ruby-gemsetซึ่งจะถูกละเว้นโดยเครื่องมืออื่น ๆ(มันจะทำงานเฉพาะร่วมกับ.ruby-version )

ตัวอย่างเช่นถ้าคุณมีง่าย.rvmrc:

rvm use 1.9.3@my-app

มันสามารถเปลี่ยนเป็น.ruby-version:

1.9.3

และ.ruby-gemset:

my-app

ให้แน่ใจว่าได้ลบ.rvmrcไฟล์ตามที่มีความสำคัญเหนือกว่าไฟล์การกำหนดค่าโครงการอื่น ๆ :

rm .rvmrc

9
โปรดทราบว่าบางแอปพลิเคชันยังไม่รองรับไฟล์. ruby-version และ. ruby-gemset ที่ใหม่กว่า แต่เฉพาะ. rvmrc (โดยเฉพาะ RubyMine) หลักสูตรนี้จะส่งผลต่อการเลือกของคุณว่าจะย้ายไปที่ระบบใหม่หรือไม่ ฉันได้ชี้ไปที่คำตอบนี้แล้วเพราะฉันใช้เวลานานมากในการติดตามเรื่องนี้ แต่คำตอบของฉันถูกลบออกด้วยเหตุผลบางอย่าง ..
Giorgio

2
มีลิงค์ไปยังเอกสาร "ทางการ" หรือไม่ในเรื่องนี้? ฉันเริ่มดูว่ามันใช้งานได้อย่างไรในเว็บไซต์ RVM แต่เพิ่งพบบางคนกล่าวถึงสิ่งที่คลุมเครือว่าเป็นไฟล์ rvmrc ใหม่ แต่ก็ไม่มีอะไรที่เป็นไปได้ว่ามันจะทำงานอย่างไร
eirc

2
ยังไม่ได้จัดทำเอกสารอย่างเต็มที่ แต่นี่คือสิ่งที่เรามีอยู่แล้วrvm.io/workflow/projects/#ruby-versions
mpapis

4
เพียงแค่วาง 1.9.3-p194 ลงใน. ruby-version ไม่ทำงานสำหรับฉัน อ้างถึงเอกสารข้างต้นrvm --create --ruby-version use 1.9.3-p194ทำงานและเนื้อหาภายในเป็นจริงruby-1.9.3-p194
Jinzhao Huo

2
RubyMine เวอร์ชันปัจจุบันรองรับสไตล์. ruby-version สามารถยืนยันกับ 6.3.2
BeepDog

76

วิธีที่ง่ายและรวดเร็วในการเปลี่ยนจาก. rvmrc เป็น. ruby-version + .ruby-gemset

rvm rvmrc to .ruby-version

1
จริง แต่มันทำให้ [] อยู่รอบ ๆ ด้วยเหตุผลบางอย่างที่ฉันไม่ได้คิดออกมา (อาจเป็นแบบแผนที่ฉันไม่คุ้นเคย) จริง ๆ แล้วฉันทำ Google ข้อความและพบคำตอบนี้เพราะประโยคที่น่าอึดอัดใจและ [] ทำให้ฉันไม่แน่ใจว่าจะทำงานอะไรจริง
zem

2
@zem [] ใน[.]ruby-versionบ่งชี้ว่าจุดเป็นตัวเลือก ; วงเล็บเหลี่ยมเป็นวิธีการทั่วไปในการบ่งชี้ทางเลือก (โดยทั่วไปไม่ใช่ในทับทิม) ดังนั้นคุณสามารถใช้ไฟล์ชื่อ "ทับทิมรุ่น" โดยไม่มีจุดและนั่นก็จะถูกนำมาใช้ สิ่งนี้มีประโยชน์หากคุณต้องการให้มองเห็นไฟล์ได้มากขึ้นในระบบที่ซ่อน "ไฟล์ดอท" ตามค่าเริ่มต้น ฉันยอมรับว่ามันไม่ชัดเจน
Matt Gibson

มันบอกว่าCould not load .rvmrc
อับดุลลาห์

4

หากคุณต้องการสร้าง.ruby-versionและ.ruby-gemsetไฟล์ในเวลาสั้น ๆ คุณสามารถใช้คำสั่งดังนี้:

rvm use 2.1.1@nancy --create

rvm --create --ruby-version 2.1.1@nancy

2

คุณสามารถลองทั้งสองอย่าง ไปที่รูทของโปรเจคของคุณสร้างไฟล์. rvmrc ( touch .rvmrc) จากนั้นแก้ไข rvm use 2.0.0-p451@your_gemset(เวอร์ชั่น ruby ​​และชื่อ gemset ของคุณ) หลังจากบันทึกไฟล์นี้คุณสามารถพิมพ์คำสั่งนี้:

cd ../your_project(คุณอยู่ในไดเรกทอรีyour_project ) และสคริปต์ใน. rvmrc จะทำงาน

RVM แนะนำให้ใช้ทับทิมรุ่น คุณสามารถเรียกใช้คำสั่งนี้เพื่อสลับจาก. rvmrc เป็น. ruby-version

rvm rvmrc to .ruby-version

มันทำอะไรได้บ้างคือสร้างชื่อไฟล์ 2 ไฟล์. ruby-versionและ. ruby-gemsetและเพิ่มบรรทัดนี้

ruby-2.0.0-p451 ใน. ruby-version

your_gemset ใน. ruby-gemset

คุณสามารถลองทำด้วยตนเองหากคุณต้องการ :)


0

ติดตั้ง rvm โดยใช้:

\curl -sSL https://get.rvm.io | bash -s stable --rails

ติดตั้งทับทิมรุ่นต่าง ๆ :

rvm install 1.8.7
rvm install 1.9.2

สลับเป็นรุ่นทับทิมเฉพาะ ตัวอย่างเช่น 1.8.7:

rvm use 1.8.7

วิธีสร้างอัญมณี:

rvm gemset create project_gemset

และใช้ gemset:

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