¿Cómo utilizar la versión especificada de Ruby para el script de Shell con rbenv?

¿Cómo utilizar la versión especificada de Ruby para el script de Shell con rbenv?

Voy a escribir un guión breve en Ruby. Y quiero especificar la versión Ruby por shebang o de otra manera.

Usaré el script en muchos entornos. Estoy usando rbenv en los entornos, pero no estoy seguro de qué versión de Ruby está instalada.

El script debe fallar si la versión especificada de Ruby no está instalada.

¿Cómo puedo hacerlo? ¿Hay una buena manera que debo seguir?

Respuesta1

De acuerdo con ladocumentos oficialesParece que solo necesitas anteponer tus scripts de esta manera:

#!/usr/bin/env ruby

Y luego haga una de las siguientes cosas para saber rbenvqué versión de Ruby usar:

extracto:https://github.com/sstephenson/rbenv

Elegir la versión Ruby

Cuando ejecuta una corrección, rbenvdetermina qué versión de Ruby usar leyéndola de las siguientes fuentes, en este orden:

  1. La RBENV_VERSIONvariable de entorno, si se especifica. Puede utilizar el rbenvcomando de shell para configurar esta variable de entorno en su sesión de shell actual.

  2. El primer .ruby-versionarchivo que se encuentra buscando en el directorio del script que está ejecutando y en cada uno de sus directorios principales hasta llegar a la raíz de su sistema de archivos.

  3. El primer .ruby-versionarchivo encontrado buscando en el directorio de trabajo actual y en cada uno de sus directorios principales hasta llegar a la raíz de su sistema de archivos. Puede modificar el .ruby-versionarchivo en el directorio de trabajo actual con el rbenvcomando local.

  4. El archivo global ~/.rbenv/version. Puede modificar este archivo usando el rbenvcomando global. Si el archivo de versión global no está presente, rbenvse supone que desea utilizar el "sistema" Ruby, es decir, cualquier versión que se ejecutaría si rbenvno estuviera en su ruta.

Luego puede usar este comando para crear un .ruby-versionarchivo en el directorio junto con el script Ruby.

$ rbenv local 1.9.3-p327

información relacionada