ruby-on-rails - 有没有办法从 Ruby 1.8.7 升级到 1.9.2 而无需重新安装 gems 和rails?

标签 ruby-on-rails ruby apache passenger centos

更详细地说...我有一台 CentOS 机器,与其他 Apache/httpd 项目 (PHP) 一起运行 Passenger,我想知道是否有某种方法可以在不破坏任何当前正在运行的项目的情况下升级我的 Ruby 版本。我发现了很多关于升级的例子,这些例子都很好,但它们都包括重新安装 Rails,在某些情况下还包括 ruby​​gems。他们甚至要求您在 Controller 中传递一些代码来编码 utf-8。没有时间这样做,因为它是运行尖锐项目的实时服务器。

我想知道你是否可以做这样的事情:

例如

  1. 安装新的 Ruby 版本 2.修复所有符号链接(symbolic link)
  2. 可能的 bundle 更新
  3. 重新启动 Apache/httpd 服务器

我没有安装 RVM,因为我认为它比安装 Ruby 本身更麻烦。

每个人都对 1.9.X 版本的性能评价非常好,我认为它可能值得升级。

最佳答案

据我所知 - 不,你不能这样做,因为某些 gem(包括乘客)具有 native 扩展(阅读:有用 C 编写的部分),这些扩展是使用 1.8.7 版本 header /代码编译的。它们很可能与 ruby​​ 1.9.x 不兼容。另外,ruby 的 stdlib 位于不同的位置(也许这可以通过某些环境变量更改?)。但主要问题仍然是 gems 的 native 扩展。

关于ruby-on-rails - 有没有办法从 Ruby 1.8.7 升级到 1.9.2 而无需重新安装 gems 和rails?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7315946/

相关文章:

ruby-on-rails - Capistrano 不会创建版本

php - 获取用户在互联网上的完整地址以进行转移

ruby-on-rails - 如何检查当前语言环境是否等于字符串

ruby-on-rails - Rails - 在 before_destroy 回调上取消销毁

Ruby 关于循环和字符串相等性

Java 和 JSR-223 在 Coldfusion 服务器上运行 Python(或 Ruby)代码

apache - 无法访问 http ://localhost:80 on running apache server

ruby-on-rails - 如何检查 HTTP 请求延迟/等待时间的原因?

ruby-on-rails - Mechanize 处理错误

html - 您如何让 simple_form 将基类用于 url 而不是子类?