2

我正在尝试编写一个 Perl 脚本,该脚本将在 Elastic MapReduce 的 Streaming 功能下作为映射器运行。我正在尝试使用 Net::Amazon::S3 (或据说更便携的 Amazon::S3)来做一些额外的文件 I/O 从和到 S3。该模块不在默认 AMI 上,因此我尝试在引导操作脚本中使用 CPAN 来安装它。引导脚本当前包含:

perl -MCPAN -e 'CPAN::Shell->install(Amazon::S3)'

但是,15 分钟后引导操作仍未完成,所以我认为它正在等待某种输入。我环顾四周,但没有找到任何加载 Perl 模块的引导操作脚本示例。有人可以建议我吗?

提前致谢...

4

2 回答 2

1
  • ~/.cpan/CPAN/MyConfig.pm配置了cpan.
  • cpan配置选项设置prerequisites_policyfollow.
  • 将环境变量设置PERL_MM_USE_DEFAULT1.
于 2012-10-10T16:48:58.797 回答
1

找到了一种更简单、更快捷的方法。看起来大多数 CPAN 模块也可以通过 apt-get 获得。我有一个引导操作脚本,现在说:

#!/bin/bash -e

source /etc/profile
# Make sure we have all of the dependencies in place for our Perl script.
sudo apt-get install -y libjson-perl
sudo apt-get install -y liburi-encode-perl

请注意,这不会加载我在原始问题中询问的 S3 模块。我已经更改了我的代码,因此我不再需要该功能。但是,Net::Amazon::S3 可以作为 libnet-amazon-s3-perl 使用,所以

sudo apt-get install -y libnet-amazon-s3-perl 

应该做的工作。

有关信息,请访问 http://www.deepakg.com/prog/2009/01/cpan-modules-on-ubuntu-apt-get-vs-perl-mcpan/

于 2012-10-23T16:07:14.927 回答