¿Es posible omitir la confirmación .rvmrc?

16

Estamos utilizando RVM para gestionar instalaciones y entornos de Ruby.

Usualmente estamos usando este .rvmrcscript:

#!/bin/bash
if [ ! -e '.version' ]; then
  VERSION=`pwd | sed 's/[a-z/-]//g'`
  echo $VERSION > .version
  rvm gemset create $VERSION
fi
VERSION=`cat .version`
rvm use 1.9.2@$VERSION

Este script obliga a RVM a crear un nuevo entorno de gemas para cada proyecto / versión.

Pero cada vez que implementamos una nueva versión, RVM nos pide que confirmemos el nuevo .rvmrc archivo.

Cuando visitamos cdeste directorio por primera vez, estamos obteniendo algo como:

  ================================================== =============
  = AVISO: =
  ================================================== =============
  = RVM ha encontrado un archivo .rvmrc aún no confiable en el =
  = directorio de trabajo actual que puede contener código desagradable. =
  = =
  = Examine el contenido de este archivo para asegurarse de que el contenido =
  = son buenos antes de confiar en él! =
  = =
  = Presione 'q' para salir del lector cuando termine de leer el archivo =
  ================================================== =============

  (presione enter para continuar cuando esté listo)

Esto no es tan malo para los entornos de desarrollo, pero con la implementación automática requiere confirmar manualmente cada nueva versión en cada servidor.

¿Es posible omitir esta confirmación?

Viacheslav Molokov
fuente

Respuestas:

24

Encontré estas notas en el blog de Waynes, http://wayneeseguin.beginrescueend.com/

Básicamente, agregando:

export rvm_trust_rvmrcs_flag=1

que ~/.rvmrcpasará por alto el cheque.

También existe rvm rvmrc <command> [dir]para .rvmrcarchivos de confianza / desconfianza manual .

Buscando lo mismo, pensé que publicaría la solución.

HTH

Saludos,

Phil

PhilT
fuente
¡Justo lo que necesitaba!
b01
3

En mi despliegue, no uso el .rvmrc. Yo uso solo rvm use 1.9.2 --defaultasí yo a; Asegúrese de que mi ruby ​​predeterminado es 1.9.2 y no otro si no estoy en este directorio en particular.

Después de la opción rvm_project_rvmrc=0en su rvmrc, asegúrese de que no se use otro rubí.

shingara
fuente
0
$ curl -L https://get.rvm.io | bash -s -- --version 1.16.20

$ rvm --version

rvm 1.16.20 (version) by Wayne E. Seguin <[email protected]>, Michal Papis <[email protected]> [https://rvm.io/]

$ grep less .rvm/scripts/cli .rvm/bin/rvm-installer .rvm/src/rvm/scripts/cli .rvm/src/rvm/binscripts/rvm-installer
.rvm/scripts/cli:            } | less
.rvm/bin/rvm-installer:    } | less
.rvm/src/rvm/scripts/cli:            } | less
.rvm/src/rvm/binscripts/rvm-installer:    } | less

La solución:

$ sed -i 's/ | less//' .rvm/scripts/cli .rvm/bin/rvm-installer .rvm/src/rvm/scripts/cli .rvm/src/rvm/binscripts/rvm-installer
Víctor
fuente
Estoy revisando esta "respuesta tardía" y creo que es bueno que responda esta pregunta. La única mejora que se me ocurre es explicar los cambios que haría el comando sed.
Eckes
0

La salida 0 alternativa pero inesperada requiere ejecución múltiple

por ejemplo, para instalar ambos ruby ​​(sin alterar la instalación original de rvm) se repetirá la ejecución

#!/bin/bash
rvm list | grep ree-1.8.7-2011.12 ||
(  
    rvm install ree-1.8.7-2011.12 &  
    expect "^Press 'q' to continue."  
    send "q\n"
    exp_continue
)

rvm list | grep ruby-1.9.3-p194 ||
(
    rvm install ruby-1.9.3-p194 &
    expect "^Press 'q' to continue."
    send "q\n"
    exp_continue
)
Víctor
fuente
¿Qué quisiste decir con tu respuesta? ¿Qué hace este código? @PhilT ya respondió esta pregunta.
Viacheslav Molokov