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.
Você está pedindo mais informações em uma pergunta do que está no escopo para Stack Overflow. Para cobrir tudo isso seria necessário um livro.
No Ubuntu é fácil instalar e remover joias da versão de "sistema" do Ruby, então se acostume a instalar e remover joias regulares via
sudo
. (No Mac OS eu daria um conselho diferente porque a Apple empacota Ruby para seu próprio uso e não é uma boa ideia mexer com ele.) Então, quando você tiver uma ideia de como toda a ideia de joia funciona, e você sabe que quer múltiplos Versões Ruby em seu sistema, tente " rbenv " ou " RVM " e instale uma ou duas versões em sua sandbox.O Linux torna mais fácil adicionar / remover Ruby por meio de uma distribuição, mas estamos limitados às versões que os mantenedores da distro empacotaram, então geralmente instalo a partir do código-fonte. Mas, isso é uma dor ao gerenciar várias versões de Ruby para sistemas de desenvolvimento, teste e produção, e é por isso que rbenv e RVM foram inventados - eles lidam com os detalhes sujos, permitindo que nos concentremos na programação.
Eu usei o rbenv e o RVM , e tenho usado o rbenv nos últimos seis meses ou mais, com bons resultados. É menos complicado do que RVM, de que gosto. Em ambos os casos, eles facilitam a instalação de diferentes versões, com conjuntos separados de joias. Você pode ter diferentes versões de Ruby abertas em diferentes janelas de terminal se desejar, facilitando o teste de compatibilidade.
A regra um ao depurar é fazer as alterações uma de cada vez, o que é verdadeiro para aprender a programar ou aprender um novo idioma. Não se distraia, apenas mantenha as coisas simples.
fonte