Sesuai jawaban sebelumnya, ini cukup banyak untuk dibahas, jadi pertimbangkan ini sebagai pengantar singkat.
permata adalah cara pustaka Ruby dikemas. Mereka adalah untuk Ruby apa toples untuk Java. Di dalam file permata, Anda menemukan kode Ruby (file .rb), tetapi juga tes, dan file khusus yang memberikan informasi tentang permata itu sendiri, seperti nama, dependensi, dan versinya ( gemspec ). Proyek Ruby apa pun dapat menentukan permata yang dibutuhkan melalui Gemfile yang hanya perlu mendeklarasikan dependensi. Rubygems adalah nama manajer paket - alat yang digunakan untuk menginstal paket (sedangkan permata adalah paket itu sendiri). Rubygems sekarang menjadi bagian dari Ruby.
Bundler adalah apa yang membuat pengelolaan permata bisa diterima. Berdasarkan Gemfile Anda, panggilan sederhana ke bundler menggunakan penginstalan bundel akan mengunduh dan menginstal semua permata yang diperlukan. Dengan menggunakan perintah gem standar, Anda harus menginstal masing-masing secara manual, menggunakangem install <gem_name>
. Bundler bukanlah bagian dari Ruby (ia sendiri dikemas sebagai permata ), tetapi merupakan "standar de facto" untuk sebagian besar aplikasi (Anda tidak akan menemukan banyak orang yang tidak menggunakannya, dan sebenarnya tidak ada alasan yang baik untuk tidak menggunakannya).
RVM adalah alat yang memungkinkan Anda menginstal beberapa versi Ruby pada mesin, beralih di antaranya saat diperlukan. Ini dapat digunakan untuk menginstal Ruby 1.8 dan 1.9, atau bahkan "MRI" (Ruby Matz, implementasi default) dan alternatif (seperti JRuby atau Rubinius). Perhatikan bahwa RVM tidak sendirian di bidang ini, lihat misalnya rbenv .
Sebuah gemset di RVM adalah satu set permata khusus untuk konteks tertentu, biasanya sebuah proyek. Ini berguna jika Anda misalnya mengembangkan aplikasi yang berbeda, masing-masing dengan kumpulan permata sendiri, dan ingin memisahkannya.
sistem Ruby adalah, ketika menggunakan RVM, versi Ruby diinstal pada mesin (yaitu, bukan melalui RVM).
Jika Anda baru memulai, permata dan bundler menarik bagi Anda. Anda dapat mengesampingkan RVM dan gemsets untuk saat ini.
Anda meminta lebih banyak informasi dalam satu pertanyaan daripada yang ada dalam cakupan untuk Stack Overflow. Untuk menutupinya semua butuh sebuah buku.
Di Ubuntu, mudah untuk menginstal dan menghapus permata ke versi "sistem" dari Ruby, jadi biasakan untuk menginstal dan menghapus permata biasa melalui
sudo
. (Di Mac OS saya akan memberikan saran yang berbeda karena Apple membundel Ruby untuk digunakan sendiri dan bukan ide yang bagus untuk mengacaukannya.) Kemudian, ketika Anda memiliki ide bagaimana keseluruhan ide permata bekerja, dan Anda tahu Anda menginginkan banyak Versi Ruby di sistem Anda, coba " rbenv " atau " RVM " dan instal satu atau dua versi di kotak pasir Anda.Linux memudahkan untuk menambah / menghapus Ruby melalui distribusi, tetapi kami terbatas pada versi yang telah dipaketkan oleh pengelola distro, jadi saya biasanya menginstal dari sumber. Tapi, itu merepotkan ketika mengelola beberapa versi Ruby untuk pengembangan, pengujian dan sistem produksi, itulah sebabnya rbenv dan RVM diciptakan - mereka menangani detail kotor yang memungkinkan kita berkonsentrasi pada pemrograman.
Saya telah menggunakan rbenv dan RVM , dan telah menggunakan rbenv selama enam bulan terakhir ini, dengan hasil yang bagus. Ini tidak serumit RVM yang saya suka. Dalam kedua kasus tersebut, mereka membuatnya mudah untuk menginstal versi yang berbeda, dengan set Permata yang terpisah. Anda dapat membuka versi Ruby yang berbeda di jendela terminal yang berbeda jika Anda mau, sehingga mudah untuk menguji kompatibilitasnya.
Aturan satu saat debugging adalah membuat perubahan satu per satu, yang berlaku untuk belajar program atau belajar bahasa baru. Jangan teralihkan, buat sederhana saja.
sumber