1

当我列出系统上的所有 Ruby 版本时,我得到以下信息:

$ rvm list rubies

rvm rubies

   ruby-1.8.7-p370 [ i686 ]
   ruby-1.9.2-p0 [ x86_64 ]
   ruby-1.9.2-p320 [ x86_64 ]
 * ruby-1.9.3-p194 [ x86_64 ]
=> ruby-1.9.3-p392 [ x86_64 ]
   ruby-2.0.0-p0 [ x86_64 ]

# => - current
# =* - current && default
#  * - default

当我在项目的新终端窗口中列出 gemset 时,我看到:

$ rvm gemset list

gemsets for ruby-1.9.3-p392 (found in /.rvm/gems/ruby-1.9.3-p392)
   (default)
=> myapp
   boso
   global

所以,我改变了1.9.3我想使用的版本:

$ rvm use 1.9.3-p194
Using /.rvm/gems/ruby-1.9.3-p194
$ rvm gemset list

gemsets for ruby-1.9.3-p194 (found in /.rvm/gems/ruby-1.9.3-p194)
=> (default)
   myapp1
   myapp2
   myapp3
   myapp4
   global

然后我尝试将 gemset 的默认值设置为myapp1版本1.9.3-p194并将其设置为默认值,这似乎有效:

$ rvm use 1.9.3-p194@myapp1 --default
Using /.rvm/gems/ruby-1.9.3-p194 with gemset myapp1

但是当我启动一个新的终端窗口并执行rvm gemset list时,我最终回到了第 1 格 - 使用不同的 ruby​​ 版本 - 即1.9.3-p392而不是-p194.

$ rvm gemset list

gemsets for ruby-1.9.3-p392 (found in /.rvm/gems/ruby-1.9.3-p392)
   (default)
=> myapp
   boso
   global

发生这种情况是因为我在打开新的终端窗口之前没有关闭之前的终端窗口吗?我是否必须强制 RVM 为所有会话或其他内容保存它?

我错过了什么?

我也试过rvm --default use 1.9.3.-p194@myapp1了,这给了我同样的问题。

4

1 回答 1

10

如果您希望每个项目都有特定的 gemset 和 ruby​​ 版本,只需.rvmrc直接在根项目中手动创建一个文件。在该文件中添加:

ruby-1.9.3-p362@gemset-name --create

或者,如果您不想手动创建它,您可以让 rvm 为您完成。cd进入项目的根目录并创建.rvmrc如下文件:

$ rvm use ruby-1.9.3-p194@gemset-name --create --rvmrc

确保.rvmrc文件包含与此类似的行并采用以下格式:

 environment_id="ruby-1.9.3-p392@gemset-name"

更新:

使用 RVM 时,用于为每个项目设置 ruby​​ 版本和 gemset 的约定是在项目的根目录中使用一个.ruby-version文件和一个文件。.ruby-gemset

文件.ruby-version如下所示:

ruby-2.0.0-p598

文件.ruby-gemset如下所示:

my_gemset_name
于 2013-03-12T04:44:26.940 回答