![是否可以跳过.rvmrc 确认?](https://linux22.com/image/537216/%E6%98%AF%E5%90%A6%E5%8F%AF%E4%BB%A5%E8%B7%B3%E8%BF%87.rvmrc%20%E7%A1%AE%E8%AE%A4%EF%BC%9F.png)
我们正在使用右心室用于管理 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
)