Ich versuche, WWW::Mechanize dazu zu bringen, sich über https bei Yahoo anzumelden; es erfordert jedoch die Verwendung von Crypt::SSLeay zum Senden über https.
Crypt::SSLeay wurde erfolgreich installiert, und openssl war bereits auf dem System installiert.
Beim Laden wird jedoch ein Fehler angezeigt:
Can't load '/home/gen19/perl5/lib/perl5/lib/site_perl/5.10.1/i686-linux//auto/Crypt/SSLeay/SSLeay.so' for module Crypt::SSLeay: /home/gen19/perl5/lib/perl5/lib/site_perl/5.10.1/i686-linux//auto/Crypt/SSLeay/SSLeay.so: undefined symbol: PL_sv_undef at /usr/lib/perl5/5.8.0/i386-linux-thread-multi/DynaLoader.pm line 229. at /home/gen19/lwp4 line 15 Compilation failed in require at /home/gen19/lwp4 line 15. BEGIN failed--compilation aborted at /home/gen19/lwp4 line 15.
Die Installation von Crypt::SSLeay war erfolgreich, und konnte die Installation von openssl (hier) erkennen:
perl Makefile.PL
=======================================================
Only one OpenSSL installation found at /usr
Consider running 'perl Makefile.PL --default' the next
time Crypt::SSLeay is upgraded to select this directory
automatically thereby avoiding the following prompt.
=======================================================
Which SSL install path do you want to use? [/usr] /home/gen19/ssldir
BUILD INFORMATION
================================================
ssl library: OpenSSL 0.9.8 in /home/gen19/ssldir
ssl header: openssl/ssl.h
libraries: -L/home/gen19/ssldir/lib -lssl -lcrypto -lgcc
include dir: -I/home/gen19/ssldir/include/openssl -I/usr/kerberos/include
================================================
Note (probably harmless): No library found for -lgcc
Writing Makefile for Crypt::SSLeay
The test suite can attempt to connect to public servers
to ensure that the code is working properly. If you are
behind a strict firewall or have no network connectivity,
these tests may fail (through no fault of the code).
Do you want to run the live tests (y/N) ? [N]
HINWEIS: Ich habe kürzlich Perl v5.10.1 mit App::perlbrew installiert, da LWP::UserAgent es benötigt. Ich habe Crypt::SSLeay mit meiner neuen Version von Perl installiert.
Ich habe keine Root-Privilegien, da ich dies auf einem Remote-Server in der Schule tue. Bitte sagen Sie mir, warum der Fehler auftritt, obwohl die Installation erfolgreich war. Ich weiß, dass es etwas mit den gemeinsam genutzten Bibliotheken zu tun hat, aber die Installation hat sie erkannt.
Nebenbei bemerkt: mein Skript funktioniert gut, wenn ich nicht "use Crypt::SSLeay;" am Anfang sage, aber es gibt die Fehlermeldung, wenn ich https verwende, dass es kein unterstütztes Protokoll ist und LWP::protocol::https installiert werden muss. Die Installation dieses Protokolls schlägt immer fehl.
EDIT: Danke für deine Hilfe, CJM. Offenbar wurde bei der Ausführung die alte Version von Perl verwendet, aber das habe ich jetzt behoben.
Die Fehlermeldung tritt nicht mehr auf, aber es heißt immer noch
Error GETing https://login.yahoo.com/config/login_verify2?&.src=ym: Protocol scheme 'https' is not supported (LWP::Protocol::https not installed) at lwp4 line 14
Ich dachte, Crypt::SSLeay sollte sich um diese Aufgabe kümmern.