Perl не может загрузить SSLeay.dll, потому что LWP::Protocol::https не установлен

Для внутренних сообщений компания, в которой я работаю, использует Slack. Это позволяет много удивительной интеграции с тоннами различного программного обеспечения и услуг. Я создаю своего собственного бота для отправки веб-хитов в Slack.

У меня все настроено и работает, у меня есть Perl-скрипт, который отправляет полезную нагрузку JSON. Если я запускаю скрипт вручную, все работает без сбоев, и мой бот Slack отправляет сообщения.

Однако, когда скрипт запускается Finalbuilder (ПО для автоматической обработки сборки), он завершается неудачно. Я получаю следующий ответ:

501 Can't load 'C:/Strawberry/perl/site/lib/auto/Net/SSLeay/SSLeay.dll' for module Net::SSLeay: load_file:The specified module could not be found (LWP::Protocol::https not installed)

Поэтому я решил, что мне нужно установить модуль "LWP::Protocol::https". Я просто открыл свой клиент cpan и написал install LWP::Protocol::https

Все равно получите ошибку после установки модуля. я написал test LWP::Protocol:https, который дал следующий ответ:

Running test for module 'LWP::Protocol::https'
Running make for M/MS/MSCHILLI/LWP-Protocol-https-6.06.tar.gz
Checksum for C:\Strawberry\cpan\sources\authors\id\M\MS\MSCHILLI\LWP-Protocol-https-6.06.tar.gz ok
Scanning cache C:\Strawberry\cpan\build for sizes
............................................................................DONE

  CPAN.pm: Going to build M/MS/MSCHILLI/LWP-Protocol-https-6.06.tar.gz

Checking if your kit is complete...
Looks good
Writing Makefile for LWP::Protocol::https
Could not read metadata file. Falling back to other methods to determine prerequisites
cp lib/LWP/Protocol/https.pm blib\lib\LWP\Protocol\https.pm
  MSCHILLI/LWP-Protocol-https-6.06.tar.gz
  C:\Strawberry\c\bin\dmake.EXE -- OK
Running make test
C:\Strawberry\perl\bin\perl.exe "-MExtUtils::Command::MM" "-e" "test_harness(0,'blib\lib', 'blib\arch')" t/*.t
t/apache.t ....... ok
t/https_proxy.t .. 1/56 # creating cert for direct.ssl.access
# creating cert for direct.ssl.access
# creating cert for foo
# creating cert for bar
# creating cert for foo
# creating cert for foo
# creating cert for bar
# creating cert for bar
t/https_proxy.t .. ok
All tests successful.
Files=2, Tests=61,  8 wallclock secs ( 0.02 usr +  0.01 sys =  0.03 CPU)
Result: PASS
  MSCHILLI/LWP-Protocol-https-6.06.tar.gz
  C:\Strawberry\c\bin\dmake.EXE test -- OK

Я могу запустить мой сценарий с Windows CMD или Finalbuilder. Оба будут работать нормально, но когда проект Finalbuilder активируется через Continua CI, я получаю сообщение об ошибке "не могу загрузить ssleay.dll".

Я понятия не имею, что делать сейчас. Кто-нибудь знает, как я могу исправить ошибку Perl?

4 ответа

Я получил эту же ошибку при запуске сценариев из IDE, но не из командной строки (та же проблема).

Моя командная строка добавляла их в путь:(они не были определены глобально) c:\perl\perl\bin;c:\perl\sup\bin;c:\perl\c\bin;

Но у IDE их не было. То же самое исправление должно работать для FinalBuilder, в нем отсутствует информация о пути perl.

Вы загрузили файлы заголовков? Я не знаю, что они для Windows, но в Linux они называются: libssl-dev а также zlib1g-dev

Та же проблема с IDE Eclipse, командная строка в порядке, но ошибка с IDE. Я проверяю местоположение:

      C:\>perldoc -l LWP::Protocol::https
C:\zailperl\perl\vendor\lib\LWP\Protocol\https.pm

И я добавляю его в переменные окружения. Я не хотел перезагружать свой компьютер, поэтому я добавил родительский путь в IDE. Щелкните правой кнопкой мыши проект.

введите описание изображения здесь

У меня тоже была эта ошибка на некоторое время. В моем случае решение было очень простым. Оказалось, что я не перезапускал службу SVN, поэтому, когда он запустил файл post-commit.bat, среда PATH не была обновлена, чтобы отразить новые пути, которые были добавлены во время установки Perl.

Во время тестирования я запускался из нового консольного окна, в котором был указан правильный путь, но как только он запускался из командного файла через SVN, он ломался с точно такой же ошибкой, которую вы опубликовали.

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