【问题标题】:Ruby on Rails - Switching a production app to use RVM, or upgrading Ruby?Ruby on Rails - 切换生产应用程序以使用 RVM,或升级 Ruby?
【发布时间】:2013-08-27 00:26:58
【问题描述】:

我在 VPS 上有一个生产应用程序,无论出于何种原因,我选择不使用 RVM 启动和运行它。我想我一定认为我不需要运行多个版本的 ruby​​,因为我只在其上运行一个应用程序。

我最近遇到了一些问题,即我在开发环境中编写的代码在该环境中运行良好,但在生产服务器上却无法正常运行。

因为我真的不能让这种情况发生,我在服务器上检查了我的 ruby​​ 版本,结果发现它正在运行 1.9.3p0(2011-10-30 修订版 33570)[i686-linux](但是1.9.3p374(2013-01-15 修订版 38858)[x86_64-darwin12.2.0] 在我的开发机器上)。

我很确定这可能是我遇到代码在我的开发机器上运行良好但在部署时出错的原因。看起来那个版本的 ruby​​ 可能是 1.9.3 发布的第一个版本,并且已经快两年了。

所以现在我要么需要在生产服务器上升级我的 ruby​​ 版本,要么安装 RVM。我可以通过 google 找到的所有关于升级 ruby​​ 的文章似乎都是基于使用 RVM。我知道那里有安装 RVM 的教程,但我有点害怕使用已经在运行的生产应用程序来安装它。

在将生产应用程序转换为使用 RVM 方面,是否有人有任何建议或经验?或者,简单地升级我的 ruby​​ 版本而不使用 RVM(这可能更容易)。我需要确保我知道我要做什么,因为这已经在商业上使用了。

非常感谢任何可以提供一些见解的人。

【问题讨论】:

  • 一位朋友建议我切换到 RVM,并且以任何其他方式进行操作是先进的。只是担心服务器/部署配置...
  • 您是否在您的开发系统上尝试了 1.9.3-p0 上的代码?在升级之前,请确保它是导致问题的 Ruby 版本。也在这里发布问题,人们可能会有所帮助。关于升级,根据您使用的应用服务器(Passenger 等),您可能需要更改配置文件以使其了解新的 Ruby。因此,无论如何,您将面临停机时间。安装 RVM 是小菜一碟(开发或生产)。为什么不选择 RVM。如果您想将来将您的应用程序迁移到 Ruby2 怎么办?安装 RVM 后,一切都会变得非常简单。

标签: ruby-on-rails ruby linux ruby-on-rails-3 rvm


【解决方案1】:

决定主要取决于您当前的设置:

    1234563环境,不会打扰它。 1234563

在任何情况下(除了bundle --deployment 使用 RVM 将确保您的 rubies 是独立的并且不会干扰运行生产 - 尽管它可能需要额外的步骤来配置应用程序以使用 ruby​​ - 但是安装在 nonsandard --prefix 中的 rubies 需要相同/类似的额外步骤。

注意事项:

  • 使用bundle --deployment 安装的 gem 是共享的 - 您不应使用此选项,因为它不安全部署
  • 如果您没有使用上述方法安装 gem,您可以使用 gem list -d 检查 gem 的安装位置

【讨论】:

    猜你喜欢
    • 2014-09-07
    • 1970-01-01
    • 1970-01-01
    • 2014-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-29
    相关资源
    最近更新 更多