ruby-on-rails ruby rubygems bundler rvm

ruby on rails - Rubygems, Bundler y confusión RVM



ruby-on-rails (4)

  1. Para saber dónde se están instalando las gemas, ejecute echo $GEM_HOME en una terminal.
  2. Al usar RVM, las gemas se instalan en su instalación de RVM, ya que cambia $ GEM_HOME. Ejecutando echo $GEM_HOME ahora mostraría una ruta en su instalación de RVM.
  3. Cuando se agrega Bundler a la mezcla, las gemas se instalarán en $GEM_HOME o, si especifica una ruta al ejecutar el bundle install instalación en esa ruta. Para saber dónde está una gema a través de Bundler, puedes usar bundle show gemname para obtener su ruta completa.

Leí " Relaciones entre Rubygems, Bundler y RVM " antes de volver a preguntar.

Bueno, hay muchas preguntas como esta, pero las personas que respondieron dicen que trabajan con Rubygems, RVM y Bundler, y no han explicado cómo funcionan cada una de ellas aisladamente.

Estoy realmente confundido con cómo los tres trabajan de forma aislada cuando estamos instalando gemas. Por favor, no me digas cómo trabajas, lo que me ayudará, pero no sabré lo que sucede cuando jugamos con ellos.

Mi confusión se puede dividir en estas preguntas. Dónde se instala una gema cuando:

  1. Solo tengo Rubygems (sin RVM o Bundler)?
  2. Rubygems y RVM están instalados?
  3. Rubygems, RVM y Bundler están instalados?

Ayúdame a entender esto con recursos en la web o con tus respuestas detalladas.


Para encontrar la ruta donde está instalada una gema, use:

gem which gem_name

Para encontrar ejecutables (como html2haml) use:

which executable_name

Para evitar escribir bundle exec html2haml recomendado por el equipo de rubygems-bundler , use mi gema rubygems-bundler .



Usa gem env para enumerar las rutas de las gemas en cada contexto.

Sin RVM gem env informará las rutas de la biblioteca de gemas del sistema.

Con RVM gem env informará las rutas de la biblioteca de gemas administradas por RVM.

Bundler administra dependencias de aplicaciones e instala en la biblioteca de gemas en su entorno. Si está utilizando RVM + Bundler, las gemas se instalarán en los directorios de gemas administradas RVM. Si lo está utilizando sin RVM, bundler instalará gemas en los directorios gema del sistema.