如何安装不同版本的Rails并保留现有版本?

时间:2010-10-25 00:58:49

标签: ruby-on-rails

我安装了Rails 2.3.5,并希望升级到2.3.10作为Rails 3的垫脚石。我认为运行gem install rails -v = 2.3.10将安装2.3.10并保持2.3.5为好。但是现在当我做Rails -v时,它只列出了Rails 2.3.10。如何安装不同版本的Rails并保留现有版本?

5 个答案:

答案 0 :(得分:10)

gem list rails应该显示所有已安装的Rails版本。您可以在config/environment.rb文件中指定希望每个项目使用哪一个。

或者(或“另外”),查看RVM(特别是“gemset”函数),为每个项目维护单独的gem集。

2017年5月更新在Rails项目(包括Rails gem本身)中管理gem的最佳实践是使用Bundler,而不是RVM gemsets。 Bundler的Gemfile将列出项目使用的所有gem,并允许您“固定”版本,因此通过更改Rails的版本引脚并运行bundle,您可以将项目更新为新版本。

<sarcasm>现在我已经说过了,但是Bundler可能正在被其他东西取代。 </sarcasm>

答案 1 :(得分:5)

你还有两个版本,正如其他答案所提到的那样。但是,您不想调用rails newapp然后更改config / environment.rb文件。这将导致版本之间发生更改的任何文件出现问题。相反,以这种方式创建一个新的2.3.5应用程序:

rails _2.3.5_ newapp

您将运行所需的确切版本的rails,以正确创建文件结构。我不知道为什么没有更好的记录。

答案 2 :(得分:1)

您可以在config/enviroment.rb中定义应用程序的Rails版本。

答案 3 :(得分:1)

您可以将所需的rails版本提供给vendor / rails文件夹。在命令行运行rake`rake rails:freeze:edge RELEASE = 2.2.2'。您不需要安装任何版本的rails来实现此功能,它将获取源并从供应商目录中的远程源构建它。

rake rails:freeze:edge RELEASE=2.2.1
rake rails:freeze:edge RELEASE=2.2.2
rake rails:freeze:edge RELEASE=2.2.3
rake rails:freeze:edge RELEASE=2.2.4
rake rails:freeze:edge RELEASE=2.2.5
rake rails:freeze:edge RELEASE=2.2.6
rake rails:freeze:edge RELEASE=2.2.7
rake rails:freeze:edge RELEASE=2.2.8

答案 4 :(得分:1)

要回答您的问题,您可以安装许多版本的rails gem而不会发生冲突。但是,每个项目都是使用特定版本创建的。要安装新版本的rails gem,如下所示; 使用您喜欢的任何版本更改版本3.2.18(请参阅下面的链接了解所有可用版本)。

gem install rails --version=3.2.18

安装最新版本

gem install rails

要检查所有可用的导轨版本,请查看此链接

Here is a link to all the version of rails

您可以考虑在加载新宝石之前通过此命令更新gem软件。

gem update --system

根据@pjmorse,列出使用此命令安装的版本

gem list rails

希望有所帮助