0

我只是想将我在一个项目中使用的 ruby​​ 从 1.8.7 升级到 1.9.3。但是,对于另一个当前未升级的项目,我仍然需要 1.8.7。如何使用 RVM 升级 ruby​​ 并保持 gemset 完好无损?

rvm upgrade 1.9.3 1.8.7是这样做的方法吗?这不会将每个使用 1.8.7 的项目迁移到 1.9.3 吗?


更新:

似乎这样做的方法是使用rvm install 1.9.3然后为我的项目迁移 gem,如下所示:

rvm gemset copy 1.8.7-p352@journal 1.9.3@journal

我现在要试试

4

2 回答 2

1

RVM 在其沙箱中一次支持多个 Ruby,这就是它存在的原因。因此,没有必要将 1.8.7 升级到 1.9.3。您可以使用单独的 Ruby 版本,和/或项目的 gemsets,或不同的路径,具体取决于您希望如何设置。

虽然您可以从1.8.7升级到 1.9.3,但我建议将 1.8.7 保留在其最终版本,并在其最终版本(当前为 p392)安装一个单独的 1.9.3 版本,以便在两者之间进行轻松测试为了兼容性。还要安装 Ruby v2.0.0,并在它的更新出现时,使用 RVM 将它们升级到最新版本,并根据需要删除旧版本。

我认为你的:

rvm gemset copy 1.8.7-p352@journal 1.9.3@journal

将告诉 RVM 在 1.9.3 中安装相同的 gem,或者您可以使用以下过程轻松地从头开始安装它们:

  1. rvm use 1.8.7
  2. gem list | awk '{print $1}' > ./gem_list
  3. rvm install 1.9.3
  4. rvm use 1.9.3
  5. xargs gem install < ./gem_list

自从我这样做以来已经有一段时间了,所以我从记忆中走出来。

于 2013-04-17T23:54:09.980 回答
1

向项目添加一个rvmrc文件。当您cd进入项目目录时,rvm 会知道要加载哪个版本的 ruby​​。然后运行bundle install以获取 Gemfile 中的 gem。

要安装 ruby​​ 版本并创建rvmrc文件,请执行以下操作:

$ rvm install 1.9.3-p194
$ cd your_project_dir/
$ rvm use ruby-1.9.3-p194@yourgemset --create --rvmrc
$ bundle install
于 2013-04-18T00:01:11.787 回答