在Stackoverflow中搜索上述问题的答案我总是遇到一个类似但不相同的问题:是否可以使用比计算机上安装的最新版本更新的rails应用程序(最大的一个)这种流行的帖子是指定在创建新应用程序时使用的rails版本.但是,我感兴趣的是知道是否可以运行诸如'rails __2.1.0__ new myapp'之类的命令,即使我的计算机上尚未安装特定的rails版本,这样当它运行时它会自动安装这个rails版本加上它创建所有的起始文件(其中Gemfile包含该特定版本的所有兼容的gems).
作为一个例子......现在我正在关注Michael Hartl的Rails Tutorial一书,我们被要求使用ruby版本2.0.0,rails版本4.0.8并将以下信息包含在Gemfile中:
source 'https://rubygems.org' ruby '2.0.0' #ruby-gemset=railstutorial_rails_4_0 gem 'rails', '4.0.8' group :development do gem 'sqlite3', '1.3.8' end gem 'sass-rails', '4.0.1' gem 'uglifier', '2.1.1' gem 'coffee-rails', '4.0.1' gem 'jquery-rails', '3.0.4' gem 'turbolinks', '1.1.1' gem 'jbuilder', '1.0.2' group :doc do gem 'sdoc', '0.3.20', require: false end
碰巧我默认使用ruby-2.1.2和rails 4.1.4所以当我想要关注Hartl的书时,我必须创建一个新的rails应用程序(根据rails 4.1.4设置Gemfile)和之后我不得不进入新的应用程序,运行$ gem install rails --version 4.0.8来安装该版本,替换上面代码中带有rails 4.1.4的默认Gemfile,然后运行bundle install和bundle update.
它似乎有效,但总而言之,这是一个相当乏味和烦人的解决方案.难道这不能解决,就像我在开始时写的那样,用'rails ____ 2.1.0 ____ new myapp'来安装2.1.0版本(我还没有安装)吗?
我确定必须有一个更简单的方法来开始使用不同的rails版本项目,我只是找不到它或尝试用错误的命令解决它.我确定我实现的解决方案还不够好,因为每当我尝试使用我已经安装的版本(2.0.0)创建另一个rails应用程序时,这就是我从终端获得的:
Desktop$ rails _2.0.0_ new myapp /Users/gaa/.rvm/rubies/ruby-2.1.2/lib/ruby/site_ruby/2.1.0/rubygems/dependency.rb:313:in `to_specs': Could not find 'railties' (= 2.0.0) - did find: [railties-4.1.4,railties-4.1.1] (Gem::LoadError) Checked in 'GEM_PATH=/Users/gaa/.rvm/gems/ruby-2.1.2:/Users/gaa/.rvm/gems/ruby-2.1.2@global', execute `gem env` for more information from /Users/gaa/.rvm/rubies/ruby-2.1.2/lib/ruby/site_ruby/2.1.0/rubygems/dependency.rb:322:in `to_spec' from /Users/gaa/.rvm/rubies/ruby-2.1.2/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_gem.rb:53:in `gem' from /Users/gaa/.rvm/gems/ruby-2.1.2/bin/rails:22:in `' from /Users/gaa/.rvm/gems/ruby-2.1.2/bin/ruby_executable_hooks:15:in `eval' from /Users/gaa/.rvm/gems/ruby-2.1.2/bin/ruby_executable_hooks:15:in ` '
我真的很感激你的帮助.
我想你所追求的是:
gem install rails -v 4.0.8 rails _4.0.8_ new myapp
这将生成rails 4.0.8 app,并创建一个锁定为4.0.8的默认Gemfile.不那么乏味.
需要安装Rails才能运行rails
命令.gem
是安装程序.需要安装Ruby才能运行gem
.Ruby发展并修复了bug,旧项目可能需要旧版本等.你可能想要一个ruby版本管理器,它可以获得它自己的安装(chruby,rbenv,rvm)gem install ...
.您也可以在Gemfile中锁定项目的ruby版本,例如:
source 'https://rubygems.org' ruby '2.1.2'