.rvmrcの確認をスキップすることはできますか?


16

Rubyのインストールと環境の管理にRVMを使用しています。

通常、次の.rvmrcスクリプトを使用しています。

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

このスクリプトにより、RVMはプロジェクト/バージョンごとに新しいgem環境を作成します。

しかし、新しいバージョンを展開するたびに、RVMは新しい .rvmrcファイルの確認を求めます。

とき、私たちcdは、このディレクトリは初めてに、我々のような何かを得ています。

  ================================================== =============
  =注意:=
  ================================================== =============
  = RVMは、=でまだ信頼されていない.rvmrcファイルを検出しました
  =厄介なコードが含まれている可能性がある現在の作業ディレクトリ。=
  = =
  =このファイルの内容を調べて、内容を確認してください=
  =信頼する前に良い!=
  = =
  =ファイルの読み取りが終了したら、「q」を押してリーダーを終了します=
  ================================================== =============

  (準備ができたら続行するにはEnterキーを押してください)

これは開発環境にとってそれほど悪いことではありませんが、自動デプロイでは、各サーバーの新しいバージョンを手動で確認する必要があります。

この確認をスキップすることはできますか?

回答:


24

これらのメモはWaynesブログ(http://wayneeseguin.beginrescueend.com/)で見つけました

基本的に、追加:

export rvm_trust_rvmrcs_flag=1

~/.rvmrcチェックバイパスします。

ファイルrvm rvmrc <command> [dir]を手動で信頼/非信頼するためにもあり.rvmrcます。

同じものを探しているので、私は解決策を投稿すると思いました。

HTH

よろしく、

フィル


ちょうど私が必要なもの!
b01

3

展開では、.rvmrcを使用しません。私はrvm use 1.9.2 --defaultそのようにしか使用しません。この特定のディレクトリにいない場合、デフォルトのルビーは1.9.2であり、別のルビーではないことを確認してください。

rvm_project_rvmrc=0rvmrcでオプションを使用した後、他のルビーが使用されていないことを確認してください。


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

修正:

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

私はこの「後期回答」をレビューしていますが、この質問に答えることは良いことだと思います。私が考えることができる唯一の改善点は、sedコマンドが行う変更を実際に説明することです。
eckes

0

代替であるが予期しないexit 0には複数の実行が必要

たとえば、両方のルビーをインストールすると(元のrvmインストールを変更せずに)実行が繰り返されます

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

答えはどういう意味ですか?このコードは何をしますか?@PhilTはすでにこの質問に答えています。
ヴィアチェスラフモロコフ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.