Я пытаюсь получить WWW :: Mechanize для входа в Yahoo, используя https; однако для отправки через https требуется использовать Crypt :: SSLeay.
Crypt :: SSLeay успешно установлен, и openssl уже установлен в системе.
Однако при загрузке выдает ошибку:
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.
Установка Crypt :: SSLeay прошла успешно и может распознать установку openssl (здесь):
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]
ПРИМЕЧАНИЕ: недавно установленный Perl v5.10.1 с использованием App :: perlbrew, потому что LWP :: UserAgent нуждается в нем. Я установил Crypt :: SSLeay, используя мою новую версию Perl.
У меня нет root-привилегий, так как я делаю это на удаленном сервере в школе. Скажите, пожалуйста, почему выдает ошибку, даже если она успешно установлена. Я знаю, что это как-то связано с общими библиотеками, но установка их распознала.
ПОБОЧНОЕ ПРИМЕЧАНИЕ: мой скрипт работает нормально, если я не говорю «использовать Crypt :: SSLeay;» в начале, но выдает ошибку, когда я использую https, что это не поддерживаемый протокол и требует установки LWP :: protocol :: https. Установка, которая всегда терпит неудачу.
РЕДАКТИРОВАТЬ: Спасибо за вашу помощь, CJM. Очевидно, когда я выполнял, он использовал старую версию Perl, но теперь я исправил это.
Это больше не дает этой ошибки; тем не менее, он по-прежнему говорит
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
Я думал, что Crypt :: SSLeay должен был позаботиться об этом.