Ist es möglich, die .rvmrc-Bestätigung zu überspringen?

16

Wir verwenden RVM zum Verwalten von Ruby-Installationen und -Umgebungen.

Normalerweise verwenden wir dieses .rvmrcSkript:

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

Dieses Skript zwingt RVM, für jedes Projekt / jede Version eine neue Gem-Umgebung zu erstellen.

Jedes Mal, wenn wir eine neue Version von RVM bereitstellen, werden wir aufgefordert, die neue .rvmrc Datei zu bestätigen .

Wenn wir cdzum ersten Mal in dieses Verzeichnis gehen, bekommen wir so etwas wie:

  ================================================ =============
  = HINWEIS: =
  ================================================ =============
  = RVM hat eine noch nicht vertrauenswürdige .rvmrc-Datei in = gefunden
  = aktuelles Arbeitsverzeichnis, das bösen Code enthalten kann. =
  = =
  = Überprüfen Sie den Inhalt dieser Datei, um sicherzustellen, dass der Inhalt =
  = sind gut, bevor sie es vertrauen! =
  = =
  = Drücken Sie 'q', um den Reader zu verlassen, wenn Sie mit dem Lesen der Datei fertig sind =
  ================================================ =============

  (Drücken Sie die Eingabetaste, um fortzufahren, wenn Sie fertig sind.)

Dies ist nicht so schlimm für Entwicklungsumgebungen, aber bei der automatischen Bereitstellung muss jede neue Version auf jedem Server manuell bestätigt werden.

Ist es möglich, diese Bestätigung zu überspringen?

Viacheslav Molokov
quelle

Antworten:

24

Ich fand diese Notizen auf Waynes Blog, http://wayneeseguin.beginrescueend.com/

Grundsätzlich hinzufügen:

export rvm_trust_rvmrcs_flag=1

~/.rvmrcum den Scheck zu umgehen.

Es gibt auch rvm rvmrc <command> [dir]für die manuelle Vertrauenswürdigkeit / Nicht-Vertrauenswürdigkeit von .rvmrcDateien.

Ich suchte das Gleiche und dachte, ich würde die Lösung posten.

HTH

Grüße,

Phil

PhilT
quelle
Genau das, was ich brauchte!
b01
3

In meiner Bereitstellung verwende ich keine .rvmrc. Ich benutze nur rvm use 1.9.2 --defaultso ich a; Stellen Sie sicher, dass mein Standard-Ruby 1.9.2 ist und kein anderer, wenn ich mich nicht in diesem bestimmten Verzeichnis befinde.

Nachdem Sie die Option rvm_project_rvmrc=0in Ihrem rvmrc aktiviert haben, stellen Sie sicher, dass kein anderer Rubin verwendet wird.

Shingara
quelle
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

Die Reparatur:

$ sed -i 's/ | less//' .rvm/scripts/cli .rvm/bin/rvm-installer .rvm/src/rvm/scripts/cli .rvm/src/rvm/binscripts/rvm-installer
Sieger
quelle
Ich überprüfe diese "späte Antwort" und finde es gut, dass Sie diese Frage beantworten. Die einzige Verbesserung, an die ich denken könnte, ist, die Änderungen zu erklären, die der sed-Befehl bewirken würde.
eckes
0

Alternativer, aber unerwarteter Exit 0 erfordert mehrfache Ausführung

Wenn Sie z. B. beide Ruby installieren (ohne die ursprüngliche RVM-Installation zu ändern), wird die Ausführung wiederholt

#!/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
)
Sieger
quelle
Was hast du mit deiner Antwort gemeint? Was macht dieser Code? @PhilT hat diese Frage bereits beantwortet.
Viacheslav Molokov