我使用 RVM,即 Ruby Version Manager 来为我的每个 Rails 项目指定一个 Ruby 版本和一组 gem。
每当我 cd
进入项目目录时,我都有一个 .rvmrc
文件来自动选择 Ruby 版本和 gemset。
安装 RVM 1.19.0 后,我收到一条消息
您正在使用 .rvmrc,它需要信任,速度较慢并且与其他 ruby 管理器不兼容,您可以使用 rvm rvmrc 切换到 .ruby-version 到 [.]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
文件?哪个是最优的?有什么后果?
如果您的 .rvmrc
文件包含自定义 shell 代码,请继续使用 .rvmrc
,因为它允许您包含任何 shell 代码。
如果您的唯一目标是切换 Ruby 版本,请使用 .ruby-version
,它受其他 Ruby 版本切换器(例如 rbenv 或 chruby)支持。该文件也不需要信任,因为它只是 Ruby 版本的名称,不会以任何方式执行。
如果您使用 .ruby-version
,您可以在文件中包含 @gemset
,但这与其他切换器不兼容。为了保持兼容性,请在单独的文件 .ruby-gemset
中使用 gemset 名称,该文件会被其他工具忽略(它只能与 .ruby-version
一起使用)。
例如,如果您有一个简单的 .rvmrc
:
rvm use 1.9.3@my-app
它可以转换为 .ruby-version
:
1.9.3
.ruby-gemset
:
my-app
请务必删除 .rvmrc
文件,因为它优先于任何其他项目配置文件:
rm .rvmrc
从 .rvmrc 切换到 .ruby-version + .ruby-gemset 的快捷方式
rvm rvmrc to .ruby-version
[.]ruby-version
中的 [] 表示 the dot is optional;方括号是表示可选性的常用约定(通常,不是在 ruby 中。)所以你可以使用一个名为“ruby-version”的文件,不带点,也可以使用它。如果您希望在默认情况下隐藏“点文件”的系统上获得更多的文件可见性,这将很有用。不过,我同意这不是那么清楚。
Could not load .rvmrc
如果您想以简短的方式创建 .ruby-version
和 .ruby-gemset
文件,您可以使用如下命令:
rvm use 2.1.1@nancy --create
rvm --create --ruby-version 2.1.1@nancy
你可以两个都试试。转到项目的根目录,创建一个 .rvmrc 文件 (touch .rvmrc
),然后编辑 rvm use 2.0.0-p451@your_gemset
(您的 ruby 版本和 gemset 名称)。保存此文件后,您可以键入以下命令:
cd ../your_project
(您位于 your_project 目录中),.rvmrc 中的脚本将执行。
RVM 推荐使用 ruby-version。您可以运行此命令从 .rvmrc 切换到 .ruby-version
rvm rvmrc to .ruby-version
它的作用是创建 2 个文件名 .ruby-version 和 .ruby-gemset 并添加这一行
ruby-2.0.0-p451
在 .ruby 版本中
your_gemset
在 .ruby-gemset
如果你愿意,你可以尝试手动进行:)
使用以下命令安装 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
要创建宝石:
rvm gemset create project_gemset
并使用 gemset:
rvm gemset use project_gemset
rvm --create --ruby-version use 1.9.3-p194
做的工作,里面的内容其实是ruby-1.9.3-p194