0
说明:除了一些基本的代码语法之外,我对Ruby知之甚少。忍受我的白痴。在现有Ruby版本旁边运行较新的Ruby版本
红宝石1.8的OpenSSL库似乎并不支持TLS 1.2。但是,运行的应用程序依赖于1.8,所以我想查看是否可以在同一个系统上同时运行更新版本的Ruby,并使用相同gem的新版本进行设置。
目前1.8版本是在/usr/lib/ruby/1.8。理想情况下,我想保持相同的结构并安装更新的版本(不确定最新的稳定版本是 - 2.3.x还是2.4.x)。
那说,我不是一个Ruby管理员。我从别人那里继承了一台服务器,他认为Ruby是做事的最佳方式,尽管公司内部没有其他Ruby经验,然后他们离开了。我知道有些系统管理员的东西,但我不知道:
- Ruby版本如何向后兼容的(例如,将一个应用程序内置1.8对运行没有任何大的改动就2.4.1)。
- 宝石是如何工作/得到更新的。 2.4.1可以使用1.8以上的宝石,还是与特定Ruby版本绑定的宝石?可以有混搭吗?是否有某种迁移途径?
- 如何妥善管理两个不同的并发版本(如何分辨一个应用程序来使用一个版本比其他,或防止自动尝试使用新版本,并打破如果他们不兼容现有应用程式)。
- 任何最佳安装实践(我通常从源代码编译,但我愿意提供建议)。
- 是否有可能在不更新整个Ruby应用程序的情况下更新Ruby的OpenSSL库?它目前在OpenSSL 0.9.8o上,所以它显着落后于时代。
服务器运行的是Debian 6.0.6(尽管我对红帽和CentOS更熟悉,所以有关此问题的任何关于包管理的提示都会受到欢迎)。
显然,系统自己的OpenSSL库仍然在0.9.8o。啊。所以很显然,系统需要更大范围的检修 - 但这将是一个更大的过程,我只是想找到一个临时修复程序来解决我们开发人员的一个直言不讳的问题。 我正在将OpenSSL 1.0.2l安装到系统上的单独文件夹/usr/local/openssl/1.0.2l中。有没有办法更新现有的Ruby安装来简单地指出这一点? – jhilgeman
显然,我没有安装“rvm”或“rbenv”。 – jhilgeman
OpenSSLs ABI也在0.9.8和1.0.2之间变化。因此,如果没有重新编译,你已经编译好的Ruby 1.8可能无法(正确)使用OpenSSL 1.0.2。 –