使用rvmrc或ruby-version文件在RVM中设置项目的gemset?

235
我使用RVM,即Ruby版本管理器,为我的每个Rails项目指定一个Ruby版本和一组gems。
我有一个.rvmrc文件,可以在进入项目目录时自动选择Ruby版本和gemset。
安装RVM 1.19.0后,我收到以下消息:
“您正在使用.rvmrc,它需要信任,速度较慢,并且不兼容其他ruby管理器,您可以使用切换到.ruby-version或使用忽略此警告,.rvmrc将继续是RVM 1和RVM 2中的默认项目文件。要忽略所有文件的警告,请运行。”
我应该继续使用.rvmrc文件还是切换到.ruby-version文件?哪个更优?有什么影响?
5个回答

382
如果你的.rvmrc文件包含自定义的shell代码,请继续使用.rvmrc,因为它允许您包含任何shell代码。
如果你的目标仅是切换Ruby版本,请使用.ruby-version,该文件得到其他Ruby版本切换器(如rbenvchruby)的支持。这个文件也不需要信任,因为它只是一个Ruby版本的名称,不会以任何方式执行。
如果您在文件中使用.ruby-version,可以包含@gemset,但这不与其他switchers兼容。为了保持兼容性,请将gemset名称放在一个单独的文件.ruby-gemset中,其他工具会忽略它(它只能和.ruby-version一起使用)
例如,如果您有一个简单的.rvmrc
rvm use 1.9.3@my-app

它可以转换为.ruby-version

1.9.3

还有.ruby-gemset

my-app

一定要删除.rvmrc文件,因为它比其他任何项目配置文件都具有优先权:

rm .rvmrc

10
请注意,并非所有应用程序都支持较新的 .ruby-version 和 .ruby-gemset 文件,而只支持 .rvmrc(尤其是 RubyMine)。当然,这会影响您是否选择转移到新系统。我已经在一个答案中指出了这一点,因为我花了很多时间才找到这个问题所在。然而,我的回答由于某些原因被删除了。 - giorgio
2
这个有没有任何“官方”的文档链接?我开始在 RVM 网站上研究它的工作原理,但只发现了一些模糊的提及,称其为新的 rvmrc 文件,但并没有说明应该如何工作。 - eirc
2
这并没有完全记录,但是以下是我们已经拥有的内容 https://rvm.io/workflow/projects/#ruby-versions - mpapis
4
只是把1.9.3-p194放入.ruby-version不能解决我的问题。请参考上面的文档,使用命令rvm --create --ruby-version use 1.9.3-p194,其中内容实际上是ruby-1.9.3-p194 - Jinzhao Huo
2
当前版本的RubyMine支持.ruby-version样式。可以在6.3.2中确认。 - BeepDog
显示剩余3条评论

76

快速且简便的方法,可从.rvmrc切换到.ruby-version + .ruby-gemset。

rvm rvmrc to .ruby-version

1
是的,但它在某些情况下会在“.”周围加上[],我还没有弄清楚原因。(也许这是我不熟悉的约定。)实际上,我通过谷歌搜索了这个消息并找到了这个答案,因为笨拙的措辞和[]使我不确定实际要运行什么。 - zem
2
@zem 中的[]表示点是可选的;方括号是一种常见的约定,用于表示可选性(通常不是在ruby中)。因此,您可以使用名为“ruby-version”的文件,没有点,也会被使用。如果您希望在默认情况下隐藏“点文件”的系统上更多地看到该文件,则这可能很有用。尽管我同意这并不是那么清晰明了。 - Matt Gibson
它说“无法加载 .rvmrc”。 - Abdullah

4
如果你想要快速创建.ruby-version.ruby-gemset文件,可以使用以下命令:
rvm use 2.1.1@nancy --create

rvm --create --ruby-version 2.1.1@nancy

3
您可以尝试两种方法。 前往您的项目根目录,创建一个.rvmrc文件 (touch .rvmrc), 然后编辑 rvm use 2.0.0-p451@your_gemset (替换成您的Ruby版本和Gem集名称)。 保存该文件后,您可以输入以下命令:

cd ../your_project (您现在在your_project目录中),.rvmrc文件中的脚本将执行。

RVM建议使用ruby-version。您可以运行以下命令从.rvmrc切换到.ruby-version

rvm rvmrc to .ruby-version

它会创建两个名为.ruby-version.ruby-gemset的文件,并添加以下行

ruby-2.0.0-p451 在.ruby-version文件中

your_gemset 在.ruby-gemset文件中

如果您愿意,也可以手动尝试 :)


-1

使用以下命令安装rvm:

\curl -sSL https://get.rvm.io | bash -s stable --rails

安装不同的 Ruby 版本:
rvm install 1.8.7
rvm install 1.9.2

切换到特定的 Ruby 版本。例如,1.8.7:

rvm use 1.8.7

创建一个 gemse:
rvm gemset create project_gemset

使用 gemset:

rvm gemset use project_gemset

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接