Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden

09. April 2021 · Programmierung · andreas · 3 Kommentare

Der Versuch, das Perl-Modul “WWW::Mechanize” zu installieren scheitert mit der Meldung, daß ein Modul nicht gefunden werden kann:

cpan> install WWW::Mechanize ... Can't load 'C:/Strawberry/perl/vendor/lib/auto/Net/SSLeay/SSLeay.xs.dll' for module Net::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Strawberry/perl/lib/DynaLoader.pm line 193. at C:/Strawberry/perl/vendor/lib/IO/Socket/SSL.pm line 19. ... Can't load 'C:/Strawberry/perl/vendor/lib/auto/Crypt/SSLeay/SSLeay.xs.dll' for module Crypt::SSLeay: load_file:Das angegebene Modul wurde nicht gefunden at C:/Strawberry/perl/lib/DynaLoader.pm line 193. at C:/Strawberry/perl/vendor/lib/Net/SSL.pm line 20. ...

Die ausgegebene Fehlermeldung führt allerdings zuerst auf eine falsche Fährte, denn in angegebenen Ordnern ist das Modul sehr wohl zu finden:

C:\>dir C:\Strawberry\perl\vendor\lib\auto\Net\SSLeay\SSLeay.xs.dll ... Verzeichnis von C:\Strawberry\perl\vendor\lib\auto\Net\SSLeay 17.03.2020 05:24 485.888 SSLeay.xs.dll ... C:\>dir C:\Strawberry\perl\vendor\lib\auto\Crypt\SSLeay\SSLeay.xs.dll ... Verzeichnis von C:\Strawberry\perl\vendor\lib\auto\Crypt\SSLeay 17.03.2020 05:26 59.904 SSLeay.xs.dll ...

Die Ursachenforschung im Internet führt überwiegend zu Treffern, die darauf hin deuten, daß ein Problem mit Modulabhängigkeiten besteht und überprüft werden sollte, ob der der Ordner “C:\Strawberry\c\bin” im Pfad enthalten ist. Dies ist der Fall:

Path=...;C:\Strawberry\c\bin;C:\Strawberry\perl\site\bin;C:\Strawberry\perl\bin;

Eine Analyse mit Microsofts Process Monitor zeigt, daß es an insgesamt drei Modulen aus dem Ordner “C:\Strawberry\c\bin” liegt, die trotz vorhandenem Pfad-Eintrag nicht gefunden werden.

Zum Beheben des Fehlers können entweder die drei Module in den Ordner “C:\Strawberry\perl\vendor\lib\auto\Net\SSLeay" kopiert oder (als vielleicht elegantere Lösung) entsprechende Links gesetzt werden:

C:\>cd C:\Strawberry\perl\vendor\lib\auto\Net\SSLeay\ C:\Strawberry\perl\vendor\lib\auto\Net\SSLeay>mklink libcrypto-1_1-x64__.dll C:\Strawberry\c\bin\libcrypto-1_1-x64__.dll symbolische Verknüpfung erstellt für libcrypto-1_1-x64__.dll <<===>> C:\Strawberry\c\bin\libcrypto-1_1-x64__.dll C:\Strawberry\perl\vendor\lib\auto\Net\SSLeay>mklink libssl-1_1-x64__.dll C:\Strawberry\c\bin\libssl-1_1-x64__.dll symbolische Verknüpfung erstellt für libssl-1_1-x64__.dll <<===>> C:\Strawberry\c\bin\libssl-1_1-x64__.dll C:\Strawberry\perl\vendor\lib\auto\Net\SSLeay>mklink zlib1__.dll C:\Strawberry\c\bin\zlib1__.dll symbolische Verknüpfung erstellt für zlib1__.dll <<===>> C:\Strawberry\c\bin\zlib1__.dll

Anschließend läuft die Installation ohne Probleme durch:

cpan> install WWW::Mechanize ... All tests successful. Files=62, Tests=816, 147 wallclock secs ( 0.23 usr + 0.19 sys = 0.42 CPU) Result: PASS