是否可以跳过.rvmrc 确认?

是否可以跳过.rvmrc 确认?

我们正在使用右心室用于管理 Ruby 安装和环境。

通常我们使用这个.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 继续)

对于开发环境来说,这并不是那么糟糕,但是自动部署需要在每台服务器上手动确认每个新版本。

可以跳过这个确认吗?

答案1

我在 Waynes 的博客上找到了这些笔记,http://wayneeseguin.beginrescueend.com/

基本上,添加:

export rvm_trust_rvmrcs_flag=1

~/.rvmrc绕过检查。

还有rvm rvmrc <command> [dir]用于手动信任/不信任.rvmrc文件的功能。

正在寻找同样的东西所以我想发布解决方案。

高血压

问候,

菲尔

答案2

在我的部署中,我不使用 .rvmrc。我仅使用rvm use 1.9.2 --default这样的东西;确保我的默认 ruby​​ 是 1.9.2,而不是其他的,如果我不在这个特定的目录中。

在您的 rvmrc 中使用该选项后rvm_project_rvmrc=0,请确保没有使用其他 ruby​​。

答案3

$ 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

修复:

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

答案4

备选但意外的出口 0 需要多次执行

例如,要安装两个 ruby​​(不改变原始 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
)

相关内容