È possibile saltare la conferma .rvmrc?


16

Stiamo usando RVM per gestire installazioni e ambienti Ruby.

Di solito stiamo usando questo .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

Questo script obbliga RVM a creare un nuovo ambiente gem per ogni nostro progetto / versione.

Ma ogni volta che stavamo distribuendo la nuova versione RVM ci chiede di confermare il nuovo .rvmrc file.

Quando ci troviamo cdin questa directory per la prima volta, stiamo ottenendo qualcosa del tipo:

  ================================================== =============
  = AVVISO: =
  ================================================== =============
  = RVM ha riscontrato un file .rvmrc non ancora attendibile in =
  = directory di lavoro corrente che può contenere codice dannoso. =
  = =
  = Esamina il contenuto di questo file per assicurarti che il contenuto =
  = sono buoni prima di fidarti! =
  = =
  = Premere 'q' per uscire dal lettore al termine della lettura del file =
  ================================================== =============

  (premere Invio per continuare quando è pronto)

Questo non è così male per gli ambienti di sviluppo, ma con la distribuzione automatica richiede di confermare manualmente ogni nuova versione su ciascun server.

È possibile saltare questa conferma?

Risposte:


24

Ho trovato queste note sul blog di Waynes, http://wayneeseguin.beginrescueend.com/

In sostanza, aggiungendo:

export rvm_trust_rvmrcs_flag=1

to ~/.rvmrcignorerà il controllo.

C'è anche rvm rvmrc <command> [dir]per affidare / non fidare manualmente i .rvmrcfile.

Alla ricerca della stessa cosa, quindi ho pensato di pubblicare la soluzione.

HTH

Saluti,

Phil


Proprio quello di cui avevo bisogno!
n.

3

Nel mio schieramento, non uso il .rvmrc. Uso solo rvm use 1.9.2 --defaultcosì che a; certo che il mio ruby ​​predefinito è 1.9.2 e non un altro se non mi trovo in questa directory particolare.

Dopo con l'opzione rvm_project_rvmrc=0nel tuo rvmrc, sei sicuro che non ci siano altri rubini usati.


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 correzione:

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

Sto rivedendo questa "risposta tardiva" e penso sia positivo che tu risponda a questa domanda. L'unico miglioramento che mi viene in mente è quello di spiegare effettivamente i cambiamenti che farebbe il comando sed.
Verifica il

0

L'uscita 0 alternativa ma imprevista richiede l'esecuzione multipla

ad es. per installare sia Ruby (senza alterare l'installazione rvm originale) verrà ripetuta l'esecuzione

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

Cosa intendevi con la tua risposta? Cosa fa questo codice? @PhilT ha già risposto a questa domanda.
Viacheslav Molokov,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.