在较新版本的Ruby上运行旧的Ruby版本化应用程序
是否可以在安装了Ruby 2.1.5的机器上运行Ruby 2.1.2中开发的Ruby应用程序?我是Ruby的新手,我开始认为这是不可能的。较新版本的Ruby无法运行较旧的版本?有人可以确认吗?在较新版本的Ruby上运行旧的Ruby版本化应用程序
当我键入“rails server”时,我收到错误消息“您的ruby版本是2.1.5,但您的Gemfile指定了2.1.2(Bundler :: RubyVersionMismatch)”。它给我的信息之一是“ruby-2.1.2没有安装”。然后它说:“安装的更多信息:RVM安装Ruby 2-1-2”
我试着在Gemfile中注释掉红宝石版和/或改变的版本号,但现在我得到更多的错误信息:
就最近的历史而言,Ruby语言最大的变化是在Ruby 1.8和Ruby 1.9之间,由于语法的变化和强制执行UTF-8编码,许多事情引起了冲突。
Ruby 2.0和2.1引入了更多功能,但并未真正影响向后兼容性。从2.1.2到2.1.5的转换非常罕见会导致一个例外的问题:
- 您可能需要重新安装所有捆绑的宝石。
通常这是与完成:
bundle install
注意Bundler本身就是一个宝石,所以你可能需要安装,如果bundle
命令不适用于该版本的Ruby:
gem install bundler
如果由于Gemfile
中的Ruby版本不匹配而导致冲突,请编辑该文件以反映所需的版本。
许多多版本Ruby管理器如RVM和RBenv在主应用程序目录中使用.ruby-version
文件来指定它。这是一个温和的方法,而不是锁定在Gemfile
本身的Ruby版本。
如果您需要在服务器上安装Ruby的新版本:
rvm install 2.1.5
rvm --default 2.1.5
rvm use 2.1.5
gem install bundler
bundle install
这应该使其可用。
他已经有2.1.5了 - 你的意思是“用RVM安装2.1.2”吗? – 2015-02-23 16:08:38
试过但更多的错误见上面的图片。 – Ray 2015-02-23 16:23:07
@射线以上错误与Ruby版本无关。 – Substantial 2015-02-23 17:03:30
是什么让你觉得你不能?你试过了吗?与“2.1.2”相比,“2.1.5”只是一组错误修复。 Ruby遵循[语义版本控制](http://semver.org/),这应该有助于你理解任何版本之间的差异。 – Jon 2015-02-23 15:48:26
我已更新我的问题以说明我为什么这么想。 – Ray 2015-02-23 15:52:31
您在database.yml中输入了错误的参数。将您的Rails应用程序连接到您的数据库的连接参数是不正确的... – 2015-02-23 16:36:44