使用rvmrc或ruby-version文件通过RVM设置项目gemset?


230

我使用RVM,Ruby Version Manager为我的每个Rails项目指定一个Ruby版本和一组gem。

我有一个.rvmrc文件,可以在我cd进入项目目录时自动选择Ruby版本和gemset 。

安装RVM 1.19.0后,我收到一条消息

您正在使用.rvmrc,它需要信任,它比较慢,并且与其他ruby管理器不兼容,您可以.ruby-version使用切换到 使用rvm rvmrc to [.]ruby-version或忽略此警告rvm rvmrc warning ignore /Users/userName/code/railsapps/rails-prelaunch-signup/.rvmrc.rvmrc它将继续是RVM 1和RVM 2中的默认项目文件,忽略对所有文件运行发出警告rvm rvmrc warning ignore all.rvmrcs

我应该继续使用.rvmrc文件还是切换到.ruby-version文件?哪个最佳?有哪些后果?

Answers:


372

如果您的.rvmrc文件包含自定义外壳代码,请继续使用,.rvmrc因为它允许您包含任何外壳代码。

如果您唯一的目的是切换Ruby版本,请使用.ruby-version其他Ruby版本切换器(例如rbenvchruby)支持的功能。该文件也不需要信任,因为它只是Ruby版本的名称,不会以任何方式执行。

如果使用.ruby-version,则可以将其包括@gemset在文件中,但这与其他切换台不兼容。为了保持兼容性,请在单独的文件中使用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

9
请注意,并非所有应用程序都支持较新的.ruby-version和.ruby-gemset文件,但仅支持.rvmrc。(特别是RubyMine)。当然,这会影响您选择是否迁移到新系统。我已经在回答中指出了这一点,因为我花了很多时间来进行追踪。但是在由于某种原因,删除我的答案..
乔治

2
是否有指向任何“官方”文档的链接?我开始研究它在RVM站点中的工作方式,但发现它作为新的rvmrc文件含糊其词,但对其工作方式一无所知。
eirc

2
它没有完全记录,但是这是我们已经拥有的rvm.io/workflow/projects/#ruby-versions
mpapis 2013年

4
只需将1.9.3-p194放入.ruby-version对我不起作用。请参阅上面的文档,rvm --create --ruby-version use 1.9.3-p194进行工作,而其中的内容实际上是ruby-1.9.3-p194
Jinzhao Huo 2013年

2
当前版本的RubyMine确实支持.ruby-version样式。可以用6.3.2确认
BeepDog

76

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

rvm rvmrc to .ruby-version

1
的确如此,但是它把[]放在了周围。由于某些原因,我还没有弄清楚。(也许这是我不熟悉的约定。)我实际上是在邮件中搜索并找到了此答案,因为尴尬的措词和[]使我不确定要实际运行的内容。
zem 2014年

2
@zem中的[] [.]ruby-version表示点是可选的;方括号是表示可选性的通用约定(通常,不是在ruby中。)因此,您可以使用名为“ ruby​​-version”的文件,不带点,也可以使用该文件。如果您希望在默认情况下隐藏“点文件”的系统上具有更高的文件可见性,这将很有用。我同意还不清楚。
马特·吉布森

它说Could not load .rvmrc
阿卜杜拉

4

如果要以简短的方式创建.ruby-versionand .ruby-gemset文件,可以使用以下命令:

rvm use 2.1.1@nancy --create

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

2

您可以同时尝试。转到项目的根目录,创建一个.rvmrc文件(touch .rvmrc),然后进行编辑 rvm use 2.0.0-p451@your_gemset(您的红宝石版本和gemset名称)。保存此文件后,可以键入以下命令:

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

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

rvm rvmrc to .ruby-version

它的作用是创建2个文件名.ruby-version.ruby-gemset并添加此行

ruby-2.0.0-p451 在.ruby-version中

your_gemset 在.ruby-gemset中

您可以尝试手动进行操作:)


0

使用以下命令安装rvm:

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

安装不同的ruby版本:

rvm install 1.8.7
rvm install 1.9.2

切换到特定的红宝石版本。例如1.8.7:

rvm use 1.8.7

要创建宝石:

rvm gemset create project_gemset

并使用一个宝石集:

rvm gemset use project_gemset
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.