5

它的所有 Perl 依赖项都得到了满足,但我收到了这个错误:

无法通过 SES.pm 第 250 行的包“LWP::UserAgent”找到对象方法“ssl_opts”。

4

2 回答 2

4

我只是想记录下我必须做些什么才能让它在我的 Debian 系统上运行。Ubuntu 的解决方案可能是相同的。

首先,要让 Perl 找到 SES.pm,创建目录 /usr/local/lib/site_perl 并将 SES.pm 复制到那里。我更喜欢这个解决方案而不是 README 推荐的解决方案。

您的系统可能已经满足了很多依赖项,因此不要安装重复的包,只需首先检查它需要哪些包。为此,请运行这些命令。如果它给出错误,则不满足:

perl -e 'use Crypt::SSLeay'
perl -e 'use Digest::SHA'
perl -e 'use Bundle::LWP'
perl -e 'use LWP::Protocol::https'
perl -e 'use MIME::Base64'
perl -e 'use Crypt::SSLeay'
perl -e 'use XML::LibXML'

我不得不删除包 libcrypt-ssleay-perl 因为它与这个 Amazon 脚本不兼容。有了它,脚本会产生问题中的错误。

我从 Debian 安装了这些软件包:

libxml-libxml-perl
libssl-dev (needed to compile dependencies)

要找出哪个包包含 Perl 模块,您需要使用 Debian 站点上的这个页面来搜索包的内容:http: //www.debian.org/distrib/packages

将包中的 :: 替换为 / 并将 .pm 放在末尾。例如,如果您需要 XML::LibXML 搜索 XML/LibXML.pm

我从 CPAN 安装了这些软件包。不过需要一点时间。有很多依赖关系。

perl -MCPAN -e 'install LWP::Protocol::https'
perl -MCPAN -e 'install Crypt::SSLeay'
于 2011-08-10T13:27:16.020 回答
1

注释掉 SES.pm 中的第 250 行,如下:

# $browser->ssl_opts(verify_hostname => 1);

然后它将运行。可能不太安全。但它运行。

于 2011-09-29T01:43:33.867 回答