繁体   English   中英

在较新版本的Ruby上运行旧的Ruby版本的应用程序

[英]Running old Ruby versioned app on newer version of Ruby

是否可以在安装了Ruby 2.1.5的计算机上运行在Ruby 2.1.2中开发的Ruby应用程序? 我是Ruby的新手,我开始认为这是不可能的。 较新版本的Ruby无法运行较旧的版本? 有人可以确认吗?

当我键入“ rails server”时,我收到错误消息:“您的ruby版本是2.1.5,但是您的Gemfile指定了2.1.2(Bundler :: RubyVersionMismatch)”。 它给我的消息之一是“未安装ruby-2.1.2”。 然后显示“要安装:rvm install ruby​​ 2-1-2”

我尝试注释掉Gemfile中的ruby版本和/或更改版本号,但现在收到更多错误消息:

在此处输入图片说明

Juste像这样删除/注释您在Gemfile中指定的红宝石版本

#ruby '2.1.2'

或在您的环境中使用RVM(Ruby Version Manager)安装ruby'2.1.2':

RVM

就最近的历史而言,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管理器(例如RVMRBenv)在主应用程序目录中使用.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

那应该使它可用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM