你如何让Amazon SES在Debian Squeeze上工作?

Sar*_*tha 5 amazon-web-services amazon-ses

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

无法在SES.pm第250行通过包"LWP :: UserAgent"找到对象方法"ssl_opts".

Sar*_*tha 4

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

首先,为了让 Perl 找到 SES.pm,请创建目录 /usr/local/lib/site_perl 并将 SES.pm 复制到那里。与自述文件推荐的解决方案相比,我更喜欢这个解决方案。

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

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'
Run Code Online (Sandbox Code Playgroud)

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

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

libxml-libxml-perl
libssl-dev (needed to compile dependencies)
Run Code Online (Sandbox Code Playgroud)

要找出哪个软件包包含 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'
Run Code Online (Sandbox Code Playgroud)