GNU/Linux >> Tutoriales Linux >  >> Linux

¿Qué es RVM (Ruby EnVironment Manager o Ruby Version Manager)?

Público objetivo:

Este artículo pretende ser útil para cualquier persona que necesite implementar o administrar varias instalaciones de Ruby en una sola máquina. Un lector debe tener una comprensión básica de cómo funcionan Ruby y las gemas de Ruby dentro de un sistema operativo.

Introducción

Imagen:logotipo de Ruby por Yukihiro Matsumoto, equipo de identidad visual de Ruby / con licencia de CC BY-SA 2.5

Administrar múltiples entornos de Ruby puede ser un desafío. Ruby es un lenguaje de código abierto, por lo que los nuevos lanzamientos pueden ser frecuentes y esos lanzamientos pueden introducir cambios drásticos en la funcionalidad. Combine este potencial con el uso de gemas de terceros que pueden depender de la funcionalidad dentro de versiones específicas de Ruby, y su aplicación puede encontrar rápidamente dificultades para cumplir con todas las dependencias que necesita solo para ejecutarse. RVM (ampliado alternativamente como Ruby enVironment Manager o Ruby Version Manager) aborda este problema de frente al proporcionar un conjunto de herramientas de línea de comandos que le permiten controlar activamente no solo la versión de Ruby que usa su aplicación, sino también los conjuntos de gemas y las versiones. usa. A continuación, analizaremos qué es RVM y mencionaremos cada uno de los beneficios que tiene para ofrecer.


.

Gestión de múltiples entornos de Ruby

RVM le permite instalar múltiples versiones del lenguaje de programación Ruby en una sola máquina. Una instalación nativa del lenguaje de programación Ruby instalará los binarios del lenguaje en un bin común directorio en el sistema operativo; por lo tanto, cualquier cambio en los archivos binarios instalados afectará a todas las aplicaciones de Ruby alojadas en la máquina. Incluso los aumentos de versión relativamente menores, como de 2.1.4 a 2.2.1, pueden introducir cambios en el idioma que rompen el comportamiento del idioma existente.
.
RVM le permite aislar estos binarios de idioma en administrados por separado entornos, que se pueden utilizar a voluntad en su sistema. Logra este aislamiento encapsulando cada instalación en un conjunto separado de directorios y dependencias y proporcionando herramientas de línea de comandos fáciles de usar para cambiar rápidamente entre versiones. RVM gestiona el intercambio de todas las rutas de ejecución relevantes, las variables de entorno y las bibliotecas de terceros instaladas, lo que permite a los desarrolladores centrarse en desarrollar sus aplicaciones en lugar de gestionar sus dependencias.
.

¿Por qué es importante RVM?

Para una sola aplicación pequeña, RVM puede parecer excesivo. Sin embargo, una vez que una base de código alcanza un cierto nivel de complejidad, puede ser un desafío rastrear exactamente en qué dependencias se basa la aplicación. Además, a medida que una aplicación crece y aprovecha varios Ruby Gems, estas bibliotecas de terceros pueden introducir más dependencias, lo que hace que un cambio de versión simple sea un evento complejo lleno de peligros. Por ejemplo, el lanzamiento de la versión 2.1.0 introdujo un cambio importante en los analizadores REXML que utilizan muchas gemas para proporcionar la funcionalidad SOAP. Esta consideración también es crucial para los servidores web alojados en VPS, que pueden alojar varias aplicaciones de Ruby a la vez (como un servidor de trabajo diferido basado en Resque, un servidor web basado en Rails y una consola de administración basada en Sinatra). Lograr que varias aplicaciones diferentes con varios conjuntos diferentes de dependencias se comporten correctamente puede ser un trabajo de tiempo completo en sí mismo. Al encapsular diferentes versiones del lenguaje Ruby en entornos separados, RVM permite al desarrollador probar nuevas versiones, implementar aplicaciones existentes sin preocuparse por cambios bruscos y garantizar que la administración de la infraestructura de la aplicación tome el menor tiempo posible.
.

Resolución de conflictos de dependencia

El beneficio más obvio obtenido mediante el uso de RVM es la gestión de dependencias. Al encapsular las instalaciones del lenguaje de programación Ruby en entornos separados controlados por línea de comandos, puede controlar más fácilmente las dependencias de versión. RVM, junto con un marco de administración de gemas como Bundler, puede hacer que los conflictos de dependencia basados ​​en el idioma sean cosa del pasado; simplemente debe verificar que haya una versión de la gema con la que está trabajando que sea compatible con su instalación actual. Además, el uso de RVM le permite estar seguro de que solo se instalarán las gemas que necesita. Cada entorno de Ruby administrado por RVM tiene su propio conjunto de gemas y, como tal, no existe contaminación cruzada entre aplicaciones que puedan usar gemas que afecten el propio entorno de ejecución de Ruby.
.

Simplificación de la implementación

Además de mitigar los cambios importantes y resolver los conflictos de dependencia, RVM puede facilitar el proceso de implementación de las aplicaciones de Ruby. RVM ofrece características como "Conjuntos de gemas con nombre", que le permiten especificar rápida y fácilmente las dependencias para su aplicación Ruby. Además, Ruby utiliza una caché compartida de versiones de gemas, lo que reduce el espacio total en disco utilizado por su implementación de Ruby. Finalmente, RVM trabaja para garantizar que todas las dependencias especificadas estén completamente contenidas en el espacio del usuario, lo que reduce los riesgos de seguridad y elimina la necesidad de ejecutar su aplicación como usuario raíz.
.

Conclusión

El artículo anterior solo toca la superficie de la funcionalidad que ofrece RVM. Al usar RVM para administrar el entorno de su aplicación, puede aliviar las preocupaciones de implementación, mitigar los problemas de actualización y crear un conjunto confiable de dependencias para su aplicación Ruby. Junto con herramientas como Bundler, RVM hace que instalar, ejecutar y administrar una aplicación Ruby sea un proceso simple y optimizado.

Atlantic.Net

Ofrecemos muchas aplicaciones de instalación alojadas en VPS con un solo clic que también ofrecen un proceso simple y optimizado. Tenemos muchas aplicaciones populares como WordPress, cPanel Hosting y Docker Hosting.
.


Linux
  1. ¿Cuál es tu administrador de paquetes de Linux favorito?

  2. Feliz aniversario GNOME:¿Cuál es tu versión favorita?

  3. ¿Cuál es tu administrador de ventanas de Linux favorito?

  4. ¿Qué es un director técnico de marketing?

  5. Desarrollo Flex en Linux, ¿cuál es un buen entorno libre?

¿Qué versión de Linux estoy ejecutando?

Instalación de Ruby on Rails en Ubuntu 14.04 - 15.10

Cómo instalar Ruby Version Manager (RVM) en Debian 11 Bullseye

Cómo instalar RVM- Ruby Version Manager en Ubuntu 20.04 LTS

Cómo instalar Ruby on Rails en Ubuntu 20.04 con RVM

Conceptos básicos de RVM - Ruby Version Manager