2011-04-22 27 views
36

Configuré RVM y lo usé para instalar Ruby y algunas otras bibliotecas. Cuando estaba pasando por varios tutoriales y configuraciones de otras tecnologías como Rails, comencé a confundirme acerca de lo que debería hacer a través de RVM y lo que debería hacer como sugieren los tutoriales.¿Cómo instalo las gemas de Ruby cuando uso RVM?

Un ejemplo es el tutorial RubyGems aquí: http://rubygems.org/pages/download

debo descargar ese archivo de alquitrán que están hablando? Parece innecesario ya que eso es para lo que pensé que era RVM. ¿Incluso necesito RubyGems? ¿Para qué es eso realmente?

Además, ¿cómo obtengo Rails? ¿Existe un comando RVM preciso para descargar e instalar Rails?

+7

No entiendo por qué alguien marcó esto como subjetivo o argumentativo. Obviamente, alguien no se molestó en leer la pregunta. –

Respuesta

47

Me ayuda a pensar en RVM como una capa de abstracción entre el usuario y el ecosistema rubí.

Sin RVM: rubí, gemas, y los binarios relacionados con el rubí (como rastrillo, especificaciones, gema, etc) todos están instalados directamente en los directorios del sistema operativo.

Con RVM: las cosas relacionadas con ruby ​​son interceptadas por rvm, de modo que ruby, gems y ruby ​​relacionados con binares se "instalan" en ~/.rvm dir de una manera agradable, limpia y organizada. RVM se encuentra entre Ruby, gemas y binarios relacionados y el sistema operativo. Proporciona una forma de tener múltiples entornos ruby ​​(con diferentes gemas y binarios) en la misma máquina.

tanto, no importa si tiene instalado RVM o no, usted debe ser capaz de ejecutar los comandos casi exactamente (*) que aparecen en cualquier tutoriales que hay en la web. En otras palabras, puede "olvidar" que RVM está instalado; el ecosistema ruby ​​debería funcionar como si no estuviera instalado.

Así que, sí, vas a tener que correr gem install rails, etc.

la esperanza de que ayude a aclarar la confusión.

(*) Hay algunas pequeñas diferencias. Por ejemplo: no debe ejecutar comandos como sudo cuando RVM está instalado.

+16

"debería poder ejecutar los comandos exactamente como aparecen en los tutoriales que hay en la web". No. Cualquier tutorial que recomiende usar 'sudo' para instalar una gema fallará. RVM dice específicamente "[NO UTILICE SUDO ...] (https://rvm.beginrescueend.com/rubies/rubygems/)". –

+0

ahh, buena llamada sobre sudo, Tin Man. Actualizaré mi respuesta. – Upgradingdave

+0

@theTinMan Tu enlace está roto. – KomodoDave

4

No es necesario instalar rubygems. RVM ya debería haber instalado rubygems. RVM es (en mi opinión) útil para gestionar diferentes instalaciones de rubí (digamos 1.8.7 y 1.9.2) o diferentes gemas. Si solo tienes una versión de ruby ​​y no te importan las diferentes gemas, RVM no es realmente un gran cambio. Si solo desea instalar rieles, simplemente use gem install rails. Si tiene una aplicación existente de rails 3, instale el paquete primero gem install bundler y luego bundle install para obtener raíles y otras dependencias de gemas.

+1

Entonces, solo por consistencia, ¿hay alguna manera de instalar los rieles a través de RVM? ¿Qué hace "los rieles de instalación de gemas"? ¿Utiliza la instalación de ruby ​​que sabe cómo instalar/descargar los rieles? ¿Cómo funciona todo? lol – Genadinik

+2

Do 'rvm gemdir'. Te dirá dónde se instalarán las cosas con 'gem install'. 'gem install rails' se instalará en ese directorio. Todos los rubíes instalados están en '~/.rvm/rubies'. Las gemas están en '~/.rvm/gems'. De hecho todo lo que tiene que ver con rvm está en '~/.rvm'. HTH – Zabba

+0

Ruby 1.9+ instala RubyGems como parte de su instalación normal. Para Ruby <1.9 creo que RVM interviene para ser útil e incluye gemas. –

11

debo descargar ese archivo de alquitrán que están hablando?

No. Ruby 1.9+ incluye gemas. RVM lo actualiza para 1.8+.

En general, tenga cuidado con las instrucciones que se encuentra en el Internet que explica cómo instalar nada, a menos que tenga la experiencia suficiente para entender completamente lo que quieren que hagas. En particular, cada vez que quieran que instales algo usando sudo o como root.

Específicamente, cuando se trabaja con RVM, NO desea utilizar sudo para instalar Ruby, or any gem.RVM funciona configurando un entorno limitado para su desarrollo, y depende del entorno de su cuenta, modificando su ruta para que cualquier solicitud de Ruby vaya al ruby ​​o gemas administrados por RVM seleccionados actualmente o a cualquier comando que instalen. sudo empuja su entorno normal hacia un lado, sustituye temporalmente el root, instala todo lo que le pidió que haga con los permisos de root y luego vuelve a su entorno.

Cuando va a ejecutar el comando, o encuentra la gema, como usted, no puede encontrarla por Ruby de RVM, porque el archivo se instaló fuera del entorno limitado de RVM o no se puede leer o modificar, porque es propiedad de root. Cualquiera sea la causa real, el resultado final será el llanto y el crujir de dientes.

RVM no subvierte la funcionalidad gem. gem se usa para instalar y administrar gemas de Ruby, y RVM lo ajusta para usar la caja de arena para todas sus maquinaciones. Obtiene funcionalidad adicional debido al soporte de RVM de las gemas, pero gem funciona como siempre, solo que tiene al "hermano mayor", RVM, controlando su mundo.

+0

+1 por advertencia de seguridad –

Cuestiones relacionadas