【问题标题】:how upgrade rvm and ruby version inside a production server如何在生产服务器中升级 rvm 和 ruby​​ 版本
【发布时间】:2012-12-04 20:19:36
【问题描述】:

我有一个带有 nginx 和 ruby 1.9.3p125 (2012-02-16 revision 34643) 的生产服务器。

我查看了http://www.ruby-lang.org/en/news/2012/11/09/ruby-1-9-3-p327-is-released/,我想升级到ruby-1-9-3-p327 以修复安全漏洞。

在哪里可以找到升级 ruby​​ 版本和我的 rvm 版本的手册或教程?

谢谢

【问题讨论】:

  • 我已经做过几次了。需要注意的一件事,尤其是。使用 nginx +Passenger Phusion 时,如果升级 Ruby 或乘客 gem,则必须重新编译 nginx +乘客。

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


【解决方案1】:

第一次升级 RVM:

rvm get stable

然后升级安装的Ruby:

rvm upgrade ruby-1.9.3-p125 ruby-1.9.3-p327

https://rvm.io/rubies/upgrading/

【讨论】:

  • 这会保留 ruby​​ 可执行文件路径、gem 可执行文件、捆绑包等吗?我有完全相同的问题,但我确实有一堆部署脚本和硬编码 Ruby 基本路径的东西。
  • 是的,它将迁移 gemset、包装器、别名和环境文件。
  • OP 正在询问生产服务器 - 这是一种有效的方法吗?在正在运行的应用程序下进行就地升级似乎有点可怕。
  • Abe Voelker,我也是这么想的。我可能会在旧版本旁边安装 Ruby 1.9.3 的较新版本,然后切换部署脚本中的路径等。如果我这样做 - 如果出现问题,我将有办法快速退出升级。
  • 这是一个补丁版本,升级应该不是问题。几点注意事项: 1. 注意提示消息 2. 如果您有很多 gem,迁移 gemsets/gems 可能需要一段时间。最好避免迁移并在下次部署时安装它们。 3. 我不能保证零停机:之后您需要重新启动您的应用服务器。可能需要几分钟。
【解决方案2】:

如果您的应用不会遭受任何停机,明智的做法是在本地复制您的生产环境,通过 rvm 执行升级,正如 NARKOZ 指出的那样,然后运行您的测试以确保一切仍按预期工作。

您可以使用 VirtualBox 之类的工具将克隆与您的开发环境分开。

一旦您确信一切正常,然后进行升级。我什至建议在继续之前对您的服务器进行快照备份。

祝你好运。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-18
    • 2012-01-02
    • 1970-01-01
    • 2021-01-13
    • 1970-01-01
    • 1970-01-01
    • 2014-05-16
    • 1970-01-01
    相关资源
    最近更新 更多