284无法位于动态链接库SSLEAY32.dll中

时间:2008-12-18 12:49:09

标签: ruby postgresql

Postgres 8.3安装在Windows 2008服务器上。 Ruby 1.8-6已安装。 gem install ruby​​-postgres。

尝试简单连接时,我得到了

ruby​​.exe - Ordinal Not Found

序号284无法位于动态链接库SSLEAY32.dll中。

确定

与postgres 8.3一起发布的ssleay32与红宝石1.8-6之间似乎存在一些冲突

我知道我可以使用gem postgres-pr但是我会优先使用ruby-postgres,因为这是我在所有其他设置上使用的,即使它们大多数是在linux而不是windows下运行。

所以问题是,有没有人解决这个问题以及如何解决这个问题?

5 个答案:

答案 0 :(得分:5)

对于使用最新的OpenSSL二进制文件,任何更好的解决方案是在ruby \ bin文件夹和posgresql \ lib文件夹中重命名libeay32.dll和ssleay32.dll,并安装最新的OpenSSL http://www.slproweb.com/products/Win32OpenSSL.html,在撰写本文时,它是“Win32 OpenSSL v0.9.8j Light”将dir放在路径上然后离开你,它对我有用!您会感受到使用最新和最安全的OpenSSL库的热情。

答案 1 :(得分:1)

Miles Georgi

  

这可能是最好的方法   开始,但最终你会想要   改为使用ruby-postgres。该   让这个驱动程序工作的技巧   是将2个dll文件复制到您的   来自你的c:\ ruby​​ \ bin文件夹   C:\ program files \ posgresql \ lib文件夹。   我认为这两个文件是libeay32.dll   和ssleay32.dll

我认为另一个approch是使用trust而不是localhost中的md5。因为我认为这种ssleay的需要应该是认证的一部分。

答案 2 :(得分:0)

在Windows下不做太多事情的情况下获得最小的东西。

使用:gem install ruby​​-postgres

然后安装Windows版本的pgadmin并使用所有需要的文件 (从pgadmin \ bin到ruby \ bin或通过将PATH设置为pgadmin \ bin)

答案 3 :(得分:0)

我从未接触过ruby或postgres,但你使用的是旧版本的openssl而不是它编译的版本。最新版本是openssl-0.9.8j,以便构建:

使用visual c ++ 2008 express + active perl下载并解压缩:

C:\ openssl-0.9.8j> perl配置VC-WIN32

C:\ OpenSSL的-0.9.8j> MS \ do_masm

C:\ openssl-0.9.8j> nmake -f ms \ ntdll.mak

答案 4 :(得分:0)

只需复制OpenSSL

的最新二进制文件即可