5

如果我继续 gem install rails 使用不同版本的 Rails 输入会发生什么?

例如,我可以输入:

gem install rails --verson 3.2.10

或者

gem install rails

这给了我 3.2.12 版本。

问题

  1. 每次安装都会覆盖前一个吗?

  2. 它会删除所有旧文件并添加我正在安装的新版本吗?

  3. 或者如果我运行它两次,它会保留一些文件?

我正在使用 Ubuntu。

4

2 回答 2

9

它将安装两个单独的 gem。实际的可执行文件rails将调用最新版本。

你可以用

<gem_command> _<version>_

例如,

rails _3.2.10_

将执行 Rails 3.2.10。

捆绑器

顺便说一句,如果我们专门讨论 Ruby on Rails,那么在您的应用程序中使用的 gem 是由Bundler控制的。Bundler 查看应用程序根目录中的 Gemfile,然后自行确定要下载、安装和使用的版本。

如果您是初学者,此时您不必担心所有这些事情。gem install railsrails new app这就是你所需要的。

于 2013-03-03T08:51:19.690 回答
1

根据enthrops 的回答gem将分别安装每个版本的 Rails,这样它们就不会相互覆盖:

它将安装两个单独的 gem。实际的可执行文件rails将调用最新版本。

如果您rbenv用于管理 Ruby 安装,那么您可以在表单的路径中找到每个 Rails 安装的目录

~/.rbenv/versions/<rubyVersion>/lib/ruby/gems/<rubyVersion>/gems/rails-<version>

例如,在我的机器上,我安装了以下版本的 Rails:

$ ls -l ~/.rbenv/versions/2.0.0-p451/lib/ruby/gems/2.0.0/gems/ | \
$ grep --extended-regexp "(\s)rails-"
drwxr-xr-x  4 foobar staff  136 May 13 19:07 rails-4.0.0
drwxr-xr-x  4 foobar staff  136 May 13 18:41 rails-4.0.5
drwxr-xr-x  4 foobar staff  136 Apr 19 21:27 rails-4.1.0
于 2014-05-13T23:22:12.683 回答