Come per la risposta precedente, questo è abbastanza da coprire, quindi considera questa una breve introduzione.
le gemme sono il modo in cui le librerie Ruby sono pacchettizzate. Sono per Ruby ciò che i barattoli sono per Java. All'interno di un file gem, trovi il codice Ruby (file .rb), ma anche dei test, e un file speciale che fornisce informazioni sul gem stesso, come il suo nome, le dipendenze e la versione ( gemspec ). Qualsiasi progetto Ruby può definire le gem di cui ha bisogno tramite un Gemfile che deve solo dichiarare le dipendenze. Rubygems è il nome del gestore dei pacchetti, lo strumento utilizzato per installare i pacchetti (mentre le gemme sono i pacchetti stessi). Rubygems ora fa parte di Ruby.
Bundler è ciò che rende sopportabile la gestione delle gemme. In base al tuo Gemfile, una semplice chiamata al bundler utilizzando l' installazione del bundle scaricherà e installerà tutte le gemme richieste. Usando il comando gem standard, dovresti installare ciascuno di essi manualmente, usandogem install <gem_name>
. Bundler non fa parte di Ruby (è a sua volta confezionato come una gemma ), ma è uno "standard de facto" per la maggior parte delle applicazioni (non troverai molte persone che non lo usano, e non ci sono buone ragioni per non usarlo, in realtà).
RVM è uno strumento che ti consente di installare più versioni di Ruby su una macchina, passando da una all'altra quando necessario. Questo può essere usato per installare sia un Ruby 1.8 che un 1.9, o anche un "MRI" (Matz's Ruby, l'implementazione predefinita) e alternative (come JRuby o Rubinius). Nota che RVM non è solo in questo campo, vedi ad esempio rbenv .
Un gemset in RVM è un insieme di gemme specifiche per un dato contesto, tipicamente un progetto. Ciò è utile, ad esempio, se stai sviluppando applicazioni diverse, ciascuna con il proprio set di gemme, e desideri tenerle separate.
Il sistema Ruby è, quando si utilizza RVM, la versione Ruby installata sulla macchina (cioè, non tramite RVM).
Se stai appena iniziando, le gemme e il bundler ti interessano. Per ora puoi lasciare da parte RVM e gemset.