Est-il possible d'ignorer la confirmation .rvmrc?


16

Nous utilisons RVM pour gérer les installations et les environnements Ruby.

Habituellement, nous utilisons ce .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

Ce script force RVM à créer un nouvel environnement de gemmes pour chacun de nos projets / versions.

Mais chaque fois que nous déployions une nouvelle version, RVM nous demande de confirmer un nouveau .rvmrc fichier.

Lorsque nous accédons cdà ce répertoire pour la première fois, nous obtenons quelque chose comme:

  ================================================== =============
  = AVIS: =
  ================================================== =============
  = RVM a rencontré un fichier .rvmrc non encore approuvé dans le =
  = répertoire de travail actuel qui peut contenir du code désagréable. =
  = =
  = Examinez le contenu de ce fichier pour vous assurer que le contenu =
  = sont bons avant de lui faire confiance! =
  = =
  = Appuyez sur 'q' pour quitter le lecteur lorsque vous avez fini de lire le fichier =
  ================================================== =============

  (appuyez sur entrée pour continuer lorsque vous êtes prêt)

Ce n'est pas aussi mauvais pour les environnements de développement, mais avec le déploiement automatique, il faut confirmer manuellement chaque nouvelle version sur chaque serveur.

Est-il possible de sauter cette confirmation?

Réponses:


24

J'ai trouvé ces notes sur le blog de Waynes, http://wayneeseguin.beginrescueend.com/

Fondamentalement, en ajoutant:

export rvm_trust_rvmrcs_flag=1

pour ~/.rvmrccontourner le chèque.

Il existe également rvm rvmrc <command> [dir]pour les .rvmrcfichiers de confiance / non confiance manuellement .

Vous cherchez la même chose alors j'ai pensé publier la solution.

HTH

Cordialement,

Phil


Juste ce dont j'avais besoin!
b01

3

Dans mon déploiement, je n'utilise pas le .rvmrc. J'utilise seulement rvm use 1.9.2 --defaultcomme ça j'ai un; sûr que mon rubis par défaut est 1.9.2 et pas un autre si je ne suis pas dans ce répertoire particulier.

Après avec l'option rvm_project_rvmrc=0dans votre rvmrc, vous êtes sûr qu'aucun autre rubis n'est utilisé.


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

$ rvm --version

rvm 1.16.20 (version) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [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 solution:

$ sed -i 's/ | less//' .rvm/scripts/cli .rvm/bin/rvm-installer .rvm/src/rvm/scripts/cli .rvm/src/rvm/binscripts/rvm-installer

J'examine cette "réponse tardive" et je pense qu'il est bon que vous répondiez à cette question. La seule amélioration à laquelle je pourrais penser est d'expliquer réellement les changements que la commande sed ferait.
vérifie

0

La sortie 0 alternative mais inattendue nécessite plusieurs exécutions

par exemple, pour installer les deux rubis (sans modifier l'installation rvm d'origine), l'exécution sera répétée

#!/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
)

Que vouliez-vous dire avec votre réponse? Que fait ce code? @PhilT a déjà répondu à cette question.
Viacheslav Molokov
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.