SSLeay.so中的未定义符号:OpenSSL_add_all_algorithms

时间:2014-05-27 20:53:02

标签: perl ssl

我尝试使用LWP从远程主机下载文件。以下是我的代码的简化版本,它可以重现错误:

#!/usr/local/bin/perl5.8 -w

use strict;
use LWP::UserAgent;

my $userAgent = LWP::UserAgent->new;
$userAgent->agent("p_o_c");

my $request = HTTP::Request->new(GET=>"https://ajax.googleapis.com/ajax/libs/prototype/1.7.2.0/prototype.js");
my $response = $userAgent->request($request);

当我运行此代码时,我得到以下内容:

[dev] /home/me > ./tmp/poc.pl
/usr/local/bin/perl5.8: symbol lookup error: /usr/local/ext/perl/5.8.0/lib/site_perl/i686-linux-thread-multi/auto/Crypt/SSLeay/SSLeay.so: undefined symbol: OpenSSL_add_all_algorithms

另外,如上所示,我正在运行perl 5.8。我正在运行RHEL 6.4(圣地亚哥)。

我尝试通过http(而不是https)下载文件,这样可行。

有没有人知道如何让这个https下载工作?除了LWP之外,我也对其他方法持开放态度,但这似乎是最简单的方法。

1 个答案:

答案 0 :(得分:0)

正如Oesor所说,我正在使用(而不是选择)一个非常旧的版本的Perl。使用较新的版本修复了该问题。