De acordo com a resposta anterior, isso é muito para cobrir, portanto, considere esta uma breve introdução.
gems são a forma como as bibliotecas Ruby são empacotadas. Eles são para Ruby o que os jars são para Java. Dentro de um arquivo gem, você encontra o código Ruby (arquivos .rb), mas também testes, e um arquivo especial que fornece informações sobre a gem em si, como seu nome, dependências e versão ( gemspec ). Qualquer projeto Ruby pode definir as joias de que precisa por meio de um Gemfile que só precisa declarar dependências. Rubygems é o nome do gerenciador de pacotes - a ferramenta usada para instalar os pacotes (enquanto as gems são os próprios pacotes). Rubygems agora faz parte do Ruby.
Bundler é o que torna o gerenciamento de joias suportável. Com base em seu Gemfile, uma simples chamada para bundler usando bundle install irá baixar e instalar todas as joias necessárias. Usando o comando gem padrão, você teria que instalar cada um deles manualmente, usandogem install <gem_name>
. Bundler não faz parte do Ruby (ele mesmo é empacotado como uma joia ), mas é um "padrão de fato" para a maioria dos aplicativos (você não encontrará muitas pessoas que não o usem, e não há boas razões para não usá-lo, na verdade).
RVM é uma ferramenta que permite instalar várias versões de Ruby em uma máquina, alternando entre elas quando necessário. Isso pode ser usado para instalar um Ruby 1.8 e 1.9, ou mesmo um "MRI" (Ruby de Matz, a implementação padrão) e alternativas (como JRuby ou Rubinius). Observe que o RVM não está sozinho neste campo, consulte, por exemplo, rbenv .
Um conjunto de joias no RVM é um conjunto de joias específicas para um determinado contexto, normalmente um projeto. Isso é útil se você estiver, por exemplo, desenvolvendo aplicativos diferentes, cada um com seus próprios conjuntos de joias, e quiser mantê-los separados.
O sistema Ruby é, ao usar RVM, a versão Ruby instalada na máquina (ou seja, não via RVM).
Se você está apenas começando, as gemas e o bundler são do seu interesse. Você pode deixar RVM e gemsets de lado por enquanto.