De acuerdo con la respuesta anterior, esto es mucho para cubrir, así que considérelo como una breve introducción.
las gemas son la forma en que se empaquetan las bibliotecas de Ruby. Son para Ruby lo que los tarros son para Java. Dentro de un archivo de gema, encontrará código Ruby (archivos .rb), pero también pruebas, y un archivo especial que brinda información sobre la gema en sí, como su nombre, dependencias y versión ( gemspec ). Cualquier proyecto Ruby puede definir las gemas que necesita a través de un Gemfile que solo necesita declarar dependencias. Rubygems es el nombre del administrador de paquetes, la herramienta que se usa para instalar los paquetes (mientras que las gemas son los propios paquetes). Rubygems ahora es parte de Ruby.
Bundler es lo que hace que la gestión de gemas sea soportable. Según su archivo Gemfile, una simple llamada al paquete usando la instalación del paquete descargará e instalará todas las gemas requeridas. Usando el comando estándar de gemas, tendrías que instalar cada uno de ellos manualmente, usandogem install <gem_name>
. Bundler no es parte de Ruby (en sí mismo está empaquetado como una joya ), pero es un "estándar de facto" para la mayoría de las aplicaciones (no encontrará mucha gente que no lo use, y no hay buenas razones para no usarlo, en realidad).
RVM es una herramienta que le permite instalar múltiples versiones de Ruby en una máquina, cambiando entre ellas cuando sea necesario. Esto se puede utilizar para instalar Ruby 1.8 y 1.9, o incluso un "MRI" (Ruby de Matz, la implementación predeterminada) y alternativas (como JRuby o Rubinius). Tenga en cuenta que RVM no está solo en este campo, consulte, por ejemplo, rbenv .
Un gemset en RVM es un conjunto de gemas específicas para un contexto determinado, por lo general un proyecto. Esto es útil si, por ejemplo, está desarrollando diferentes aplicaciones, cada una con su propio conjunto de gemas, y desea mantenerlas separadas.
system Ruby es, cuando se usa RVM, la versión de Ruby instalada en la máquina (es decir, no a través de RVM).
Si recién está comenzando, las gemas y el paquete son de su interés. Puede dejar a un lado RVM y gemas por ahora.
Está solicitando más información en una pregunta de la que está dentro del alcance de Stack Overflow. Para cubrirlo todo haría falta un libro.
En Ubuntu es fácil instalar y eliminar gemas en la versión del "sistema" de Ruby, así que acostúmbrate a instalar y eliminar gemas normales a través de
sudo
. (En Mac OS, daría un consejo diferente porque Apple incluye Ruby para su propio uso y no es una buena idea meterse con él). Luego, cuando tenga una idea de cómo funciona toda la idea de la gema, y sepa que quiere múltiples Versiones de Ruby en su sistema, pruebe " rbenv " o " RVM " e instale una o dos versiones en su caja de arena.Linux facilita agregar / eliminar Ruby a través de una distribución, pero estamos limitados a las versiones que los encargados de la distribución han empaquetado, por lo que normalmente lo instalo desde la fuente. Pero eso es una molestia al administrar varias versiones de Ruby para sistemas de desarrollo, prueba y producción, razón por la cual se inventaron rbenv y RVM : manejan los detalles sucios permitiéndonos concentrarnos en la programación.
He usado tanto rbenv como RVM , y he estado usando rbenv durante los últimos seis meses aproximadamente, con buenos resultados. Es menos complicado que RVM que me gusta. En cualquier caso, facilitan la instalación de diferentes versiones, con conjuntos separados de gemas. Puede tener diferentes versiones de Ruby abiertas en diferentes ventanas de terminal si lo desea, lo que facilita la prueba de compatibilidad.
La regla uno al depurar es hacer cambios uno a la vez, lo cual es cierto para aprender a programar o aprender un nuevo idioma. No se distraiga, simplemente manténgalo simple.
fuente