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.