Bir önceki cevaba göre, bunu kapsayacak çok şey var, bu yüzden bunu kısa bir giriş olarak düşünün.
mücevherler , Ruby kitaplıklarının paketlenme şeklidir. Java için kavanozlar ne ise Ruby için öyleler. Bir gem dosyasında, Ruby kodunu (.rb dosyaları), ama aynı zamanda testleri ve adı, bağımlılıkları ve sürümü ( gemspec )gibi gem hakkında bilgi veren özel bir dosya bulursunuz . Herhangi bir Ruby projesi,sadece bağımlılıkları bildirmesi gerekenbir Gemfile aracılığıyla ihtiyaç duyduğu mücevherleri tanımlayabilir. Rubygems , paket yöneticisinin adıdır - paketleri kurmak için kullanılan araç (mücevherler paketlerin kendisidir). Rubygems artık Ruby'nin bir parçası.
Bundler , değerli taşların yönetimini katlanılabilir kılan şeydir. Gemfile'ınıza bağlı olarak, paket yüklemeyi kullanan basit bir paketleyici çağrısı, gerekli tüm mücevherleri indirip yükleyecektir. Standart gem komutunu kullanarak, her birini manuel olarakgem install <gem_name>
. Bundler, Ruby'nin bir parçası değildir (kendisi bir mücevher olarak paketlenmiştir ), ancak çoğu uygulama için "fiili bir standarttır" (onu kullanmayan pek çok insan bulamayacaksınız ve aslında kullanmamak için iyi bir neden bulamayacaksınız).
RVM , Ruby'nin birden çok sürümünü bir makineye kurmanıza ve gerektiğinde aralarında geçiş yapmanıza olanak tanıyan bir araçtır. Bu, hem bir Ruby 1.8 hem de 1.9, hatta bir "MRI" (Matz's Ruby, varsayılan uygulama) ve alternatifler (JRuby veya Rubinius gibi) kurmak için kullanılabilir. RVM'nin bu alanda yalnız olmadığını unutmayın, örneğin bkz . Rbenv .
Bir gemset RVM belirli bir bağlamda, tipik olarak bir projeye taşlar spesifik bir kümesidir. Bu, örneğin her biri kendi mücevher setlerine sahip farklı uygulamalar geliştiriyorsanız ve bunları ayrı tutmak istiyorsanız kullanışlıdır.
sistem Ruby , RVM kullanılırken makineye kurulan Ruby sürümüdür (yani, RVM aracılığıyla değil).
Yeni başlıyorsanız, mücevherler ve paketleyici sizi ilgilendirir. RVM ve mücevher setlerini şimdilik bir kenara bırakabilirsiniz.