更详细地说...我有一台 CentOS 机器,与其他 Apache/httpd 项目 (PHP) 一起运行 Passenger,我想知道是否有某种方法可以在不破坏任何当前正在运行的项目的情况下升级我的 Ruby 版本。我发现了很多关于升级的例子,这些例子都很好,但它们都包括重新安装 Rails,在某些情况下还包括 rubygems。他们甚至要求您在 Controller 中传递一些代码来编码 utf-8。没有时间这样做,因为它是运行尖锐项目的实时服务器。
我想知道你是否可以做这样的事情:
例如
- 安装新的 Ruby 版本 2.修复所有符号链接(symbolic link)
- 可能的 bundle 更新
- 重新启动 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/