簡體   English   中英

Perl 無法加載 SSLeay.dll 因為 LWP::Protocol::https 未安裝

[英]Perl can't load SSLeay.dll because LWP::Protocol::https is not installed

我工作的公司使用Slack進行內部消息傳遞。 它允許與大量不同的軟件和服務進行大量出色的集成。 我正在制作自己的機器人,用於將 webhook 發送到 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 來觸發我的腳本。 兩者都可以正常工作,但是當通過 Continua CI 激活 Finalbuilder 項目時,我收到“無法加載 ssleay.dll”錯誤。

我不知道現在該怎么辦。 有誰知道我可以如何修復 Perl 錯誤?

從 IDE 運行腳本時,我遇到了同樣的錯誤,但不是從命令行(同樣的問題)。

我的命令行正在將這些添加到路徑中。 (這些不是全局定義的)。

c:\perl\perl\bin;c:\perl\sup\bin;c:\perl\c\bin;

但是 IDE 沒有這些。 所以同樣的修復應該適用於 FinalBuilder,它缺少 perl 路徑信息。

您是否加載了 header 文件? 我不知道 Windows 是什么,但在 Linux 中,它們被稱為: libssl-devzlib1g-dev

我也有一段時間有這個錯誤。 就我而言,解決方案非常簡單。 原來我沒有重新啟動 SVN 服務,所以當它運行post-commit.bat文件時,PATH 環境沒有更新以反映在 Perl 安裝期間添加的新路徑。

當我在測試時,我正在從具有正確路徑的新控制台 window 運行,但是一旦它通過 SVN 從批處理文件運行,它就壞了,與您發布的錯誤完全相同。

IDE Eclipse 的問題相同,命令行正常,但 IDE 出現錯誤。 我檢查位置:

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

我將它添加到環境變量中。 我不想重新啟動我的電腦,所以我將父路徑添加到 IDE。 右鍵單擊項目。

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM