升级ruby的OpenSSL版本?

时间:2015-04-14 22:37:34

标签: ruby windows openssl

我正在尝试从Windows的源代码构建Ruby,并且似乎没有非常好的文档来说明我如何能够获得本地构建的OpenSSL以连接到我的ruby构建。有没有什么方法我应该在DLL / EXE /中复制什么才能用最新的OpenSSL版本(如1.0.1r或其他东西)构建一个Ruby版本?

1 个答案:

答案 0 :(得分:1)

所以是的,这既是一个简单而又难的问题。

首先,我假设您正在使用RubyInstaller project而不是使用MSVC进行编译。如果您正在使用MSVC,那么其中一些可能会有用,但总体而言不是。

仅供参考,这是actually configures which version to use

的代码

下一条有价值的信息,RubyInstaller用于构建Ruby的环境基于rubenvbmingw64 buildsVersion 4.7.2 in this case)和樱桃挑选的MSYS工具。编译器很重要,因为已知使用非同一编译器构建的库会发生问题。 我实际上并不了解该领域。

RubyInstaller尝试通过提供使用OpenKnapsack Project的DevKit构建的二进制文件来避免此问题。 openssl库是从那里下载的,用于RubyInstaller构建。如果你想要一个二进制文件,那么你可以将工作配方上传到the knapsack-recipes repo,它将以32位和64位的形式构建并上传。 我是手动完成的。 -sad face -

因此,简单部分是您可以获取所需的任何二进制文件,只需将DLL放入Ruby bin文件夹即可链接并使用该DLL。但Ruby编译的版本是一个硬编码常量,即使你有一个新版本的DLL也不会改变。

部分是,如果knapsack-recipes repo中没有您想要的版本的配方,您必须制作一个并提交拉取请求或查找/构建版本你自己。然后,如果你真的想在Ruby中使用硬编码的正确版本,你必须更改config in the rubyinstaller project,然后使用如下命令自己构建Ruby:

> rake ruby21 DKVER=mingw64-32-4.7.2 #32-bit
> rake ruby21 DKVER=mingw64-64-4.7.2 #64-bit