284 не может находиться в библиотеке динамической компоновки SSLEAY32.dll

Postgres 8.3 установлен на сервере Windows 2008. Установлен Ruby 1.8-6. gem установить ruby-postgres.

При попытке простого подключения я получаю

ruby.exe - Порядковый номер не найден

Порядковый номер 284 не может находиться в библиотеке динамической компоновки SSLEAY32.dll.

ОК

Кажется, есть некоторый конфликт между ssleay32, поставляемым с postgres 8.3, и ruby ​​1.8-6

Я знаю, что могу использовать gem postgres-pr, но я бы предпочел использовать ruby-postgres, потому что это то, что я использую во всех моих других настройках, даже если большинство из них работает под Linux, а не под Windows.

Итак, вопрос в том, решил ли кто-нибудь это и как?

Пошаговое руководство по созданию собственного Slackbot: От установки до развертывания
Пошаговое руководство по созданию собственного Slackbot: От установки до развертывания
Шаг 1: Создание приложения Slack Чтобы создать Slackbot, вам необходимо создать приложение Slack. Войдите в свою учетную запись Slack и перейдите на...
5
0
11 068
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Майлз Георги

That is probably the best way to start, but eventually you will want to be using ruby-postgres instead. The trick to getting that driver working is to copy 2 dll files to your c:\ruby\bin folder from your C:\program files\posgresql\lib folder. I think these 2 files are libeay32.dll and ssleay32.dll

Я думаю, что другой подход - использовать trust вместо md5 от localhost. Я полагаю, потому что эта потребность в ssleay должна быть связана с аутентификацией.

Чтобы получить минимальную вещь, не делая слишком много вещей под окнами.

использование: gem install ruby-postgres

затем установите версию pgadmin для Windows и используйте оттуда все необходимые файлы (cp из pgadmin \ bin в ruby ​​\ bin или установив PATH в pgadmin \ bin)

Я никогда не касался 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> мс \ do_masm

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

Ответ принят как подходящий

Любое даже лучшее решение, касающееся использования последних двоичных файлов для OpenSSL, состоит в том, чтобы переименовать и libeay32.dll, и ssleay32.dll как в папке ruby ​​\ bin, так и в папке posgresql \ lib, и установить последнюю версию OpenSSL из http://www.slproweb.com/products/Win32OpenSSL.html, по адресу на момент написания это был "Win32 OpenSSL v0.9.8j Light", поместил каталог в путь и вперед, у меня это сработало! У вас возникнет тёплое чувство использования самых современных и безопасных библиотек OpenSSL.

Надо попробовать, но это кажется лучшим способом.

Jonke 17.03.2009 14:04

Таким образом я решил мои проблемы с Windows 7, получив самые свежие библиотеки DLL прямо с сайта OpenSSL.

thaddeusmt 02.03.2011 01:34

Просто скопируйте последние бинарные файлы для OpenSSL

Другие вопросы по теме