Gunakan file rvmrc atau ruby-versi untuk mengatur permata proyek dengan RVM?

230

Saya menggunakan RVM, Manajer Versi Ruby untuk menentukan versi Ruby dan satu set permata untuk masing-masing proyek Rails saya.

Saya memiliki .rvmrcfile untuk secara otomatis memilih versi Ruby dan gemset setiap kali saya cdmasuk ke direktori proyek.

Setelah menginstal RVM 1.19.0, saya mendapatkan pesan

Anda menggunakan .rvmrc, itu membutuhkan kepercayaan, lebih lambat dan tidak kompatibel dengan manajer ruby ​​lainnya, Anda dapat beralih .ruby-versionmenggunakan rvm rvmrc to [.]ruby-versionatau mengabaikan peringatan ini dengan rvm rvmrc warning ignore /Users/userName/code/railsapps/rails-prelaunch-signup/.rvmrc, .rvmrcakan terus menjadi file proyek default di RVM 1 dan RVM 2, untuk mengabaikan peringatan untuk semua file dijalankan rvm rvmrc warning ignore all.rvmrcs.

Haruskah saya terus menggunakan .rvmrcfile saya atau saya harus beralih ke .ruby-versionfile? Mana yang optimal? Apa akibatnya?

Daniel Kehoe
sumber

Jawaban:

372

Jika .rvmrcfile Anda berisi kode shell khusus, terus gunakan .rvmrckarena memungkinkan Anda untuk memasukkan kode shell apa pun.

Jika satu-satunya tujuan Anda adalah mengganti versi Ruby, gunakan .ruby-versionyang didukung oleh pengalih versi Ruby lain seperti rbenv atau chruby . File ini juga tidak memerlukan kepercayaan karena itu hanya nama versi Ruby dan tidak akan dieksekusi dengan cara apa pun.

Jika Anda menggunakan, .ruby-versionAnda dapat memasukkan @gemsetdalam file tetapi ini tidak akan kompatibel dengan switchers lain. Untuk menjaga kompatibilitas, gunakan nama gemset dalam file terpisah .ruby-gemsetyang diabaikan oleh alat lain (hanya bekerja bersama dengan .ruby-version) .

Misalnya, jika Anda memiliki yang sederhana .rvmrc:

rvm use 1.9.3@my-app

Itu dapat diubah menjadi .ruby-version:

1.9.3

Dan .ruby-gemset:

my-app

Pastikan untuk menghapus .rvmrcfile karena diutamakan daripada file konfigurasi proyek lainnya:

rm .rvmrc
mpapis
sumber
9
Perhatikan bahwa belum semua aplikasi mendukung file .ruby-versi dan .ruby-gemset yang lebih baru tetapi hanya .rvmrc. (Khususnya RubyMine). Ini tentu saja akan mempengaruhi pilihan Anda apakah akan pindah ke sistem yang baru. Saya sudah menunjukkan ini dalam jawaban karena butuh banyak waktu untuk melacak ini. Namun jawaban saya dihapus karena beberapa alasan ..
giorgio
2
Apakah ada tautan ke dokumentasi "resmi" ini? Saya mulai melihat bagaimana ini bekerja di situs RVM tetapi hanya menemukan beberapa menyebutkan samar-samar itu sebagai file rvmrc baru tetapi tidak ada cara bagaimana ini seharusnya bekerja.
eirc
2
Ini belum sepenuhnya didokumentasikan, tetapi inilah yang sudah kami miliki rvm.io/workflow/projects/#ruby-versions
mpapis
4
Cukup tempatkan 1.9.3-p194 ke dalam .ruby-versi tidak berfungsi untuk saya. Lihat dokumen di atas, rvm --create --ruby-version use 1.9.3-p194lakukan pekerjaan, dan konten di dalamnya sebenarnyaruby-1.9.3-p194
Jinzhao Huo
2
Versi RubyMine saat ini mendukung gaya versi .ruby. Dapat mengonfirmasi dengan 6.3.2
BeepDog
76

Cara cepat dan mudah untuk beralih dari .rvmrc ke .ruby-versi + .ruby-gemset

rvm rvmrc to .ruby-version
Sam Backus
sumber
1
Benar, tetapi menempatkan [] di sekitar. untuk beberapa alasan saya belum menemukan jawabannya. (mungkin ini adalah konvensi yang saya tidak kenal.) Saya benar-benar mencari di Google pesan dan menemukan jawaban ini karena frasa canggung dan [] membuat saya tidak yakin apa yang harus dijalankan.
zem
2
@zem Tanda [] di [.]ruby-versionmengindikasikan bahwa titik itu opsional ; tanda kurung adalah konvensi umum untuk menunjukkan opsionalitas (secara umum, bukan dalam ruby.) Jadi Anda dapat menggunakan file yang disebut "ruby-version", tanpa titik, dan itu juga akan digunakan. Ini dapat berguna jika Anda ingin lebih banyak visibilitas file pada sistem yang menyembunyikan "file dot" secara default. Saya setuju itu tidak jelas.
Matt Gibson
DikatakanCould not load .rvmrc
Abdullah
4

Jika Anda ingin membuat .ruby-versiondan .ruby-gemsetfile dengan cara yang singkat, Anda dapat menggunakan perintah seperti ini:

rvm use 2.1.1@nancy --create

rvm --create --ruby-version 2.1.1@nancy
pengguna2627938
sumber
2

Anda bisa mencoba keduanya. Buka root proyek Anda, buat file .rvmrc ( touch .rvmrc), lalu edit rvm use 2.0.0-p451@your_gemset(versi ruby ​​dan nama permata Anda). Setelah menyimpan file ini, Anda dapat mengetik perintah ini:

cd ../your_project(Anda berada di proyek_Anda direktori ), dan skrip di .rvmrc akan dijalankan.

RVM merekomendasikan untuk menggunakan versi ruby. Anda dapat menjalankan perintah ini untuk beralih dari .rvmrc ke .ruby-version

rvm rvmrc to .ruby-version

Apa yang dilakukannya adalah membuat 2 nama file .ruby-version , dan .ruby-gemset dan tambahkan baris ini

ruby-2.0.0-p451 dalam versi .ruby

your_gemset di .ruby-gemset

Anda dapat mencoba melakukannya secara manual jika Anda mau :)

duykhoa
sumber
0

Instal rvm menggunakan:

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

Pasang berbagai versi ruby:

rvm install 1.8.7
rvm install 1.9.2

Beralih ke versi ruby ​​tertentu. Misalnya, 1.8.7:

rvm use 1.8.7

Untuk membuat permata:

rvm gemset create project_gemset

Dan untuk menggunakan permata:

rvm gemset use project_gemset
Narasu Londave
sumber