如何在Windows上的ActivePerl中安装模块及其依赖项?

时间:2009-12-10 13:33:40

标签: perl module perl-module

我想使用gmail的smtp服务器和perl发送电子邮件。我正在尝试安装Email::Send::Gmail,但我不清楚安装它的步骤是什么。它似乎取决于我没有安装的其他模块。

6 个答案:

答案 0 :(得分:6)

这部分取决于您正在使用的Perl分布。

ActivePerl包含一个名为PPM(Perl Package Manager)的实用程序,用于安装模块。它自动处理依赖项解析。 PPM特别适合在Windows上安装XS模块,而通常不提供编译器。 PPM的缺点是它有些CPAN模块不可用(可能是因为它们无法通过ActiveState的自动构建过程)。您可以从开始菜单运行PPM,也可以在命令提示符下键入ppm

更通用的选择是使用交互式CPAN shell。请注意,您必须具有使用此方法安装XS模块的编译器。您可以通过在命令提示符下键入cpan来访问cpan shell。

最后的蛮力方法是从CPAN下载tarball并一次手动安装一个。如果安装因依赖性不满意而中止,请下载并安装它们,然后返回第一个模块再试一次。

答案 1 :(得分:3)

如果您使用的是ActivePerl,请首先尝试使用ActivePerl附带的PPM (Perl Package Manager)工具。当您告诉它安装模块时,它应该为您处理所有依赖项。

请注意电子邮件::发送:: Gmail的dependency tree。其中一些模块需要额外安装第三方软件,最明显的是OpenSSLcpan不会为您做。

答案 2 :(得分:2)

输入:

 cpan Email::Send::Gmail

...在命令提示符下。

首先设置local::lib可能是个好主意。

或查看Perl Foundation Wiki on installing CPAN modules或相同的without root access

或者查看the CPAN guide to installing modules

答案 3 :(得分:1)

你可以安装它:

perl -MCPAN -e shell
install Email-Send-Gmail

希望它有所帮助,

/克劳斯

答案 4 :(得分:1)

如果可以的话,CPAN。 (哈!它押韵......真是犯罪。哎呀,再做一次!什么时候会结束......:p)它基本上是 为你的系统安装模块的方式。它会自动检测依赖关系,下载,安装和测试它们,并在构建或测试失败时退出。这是安装模块的绝佳而可靠的方式。如果除了ActiveState的发行版之外你基本上使用任何Perl发行版,包括Strawberry Perl,这都很有用。通常,这是通过

完成的
cpan Module::Name

或者,在交互模式下,

$ cpan
cpan > install Module::Name

如果您正在使用ActiveState Perl,那么您可能希望使用ActiveState的PPM(Perl包管理器)。它类似于CPAN,除了为ActiveState Perl预先构建的所有内容。 ActiveState在其网站上有how to use their Perl Package Manager上的文档,包括图形示例。

如果简单选项失败,那你就不会失败。您可以使用一些更复杂但手动的方法来安装模块。

您可以下载的大多数模块都包含.yaml文件中的一些元数据;这将帮助您确定您是否拥有所有依赖项。 CPAN和PPM会自动解析并安装所有依赖项,但不会手动执行,将该任务留给您。

假设您拥有所有依赖项,并且需要手动安装它,请查找以下两个文件之一:Makefile.PL或Build.PL。如果你有一个Makefile.PL,cd到你在命令提示符中引出模块的目录,并输入:

perl Makefile.PL
make
make test
make install

您的系统需要一个'make'程序。如果它是ActiveState Perl,您可能需要手动安装模块(请参阅一个或两个段落。)

如果碰巧有Build.PL,那么你需要做一些稍微不同的步骤:

perl Build.PL
Build
Build test
Build install

(当然,如果make / Build测试失败,您可能需要考虑不安装,但这取决于您。)

作为最后的替代方案,如果您的模块没有xs个文件(即需要在安装时编译的代码),并且所有依赖项都得到满足,您只需移动{{1}中的文件即可}文件夹到perl安装的lib文件夹。如果您只想将它​​用于一个项目,可以添加一个PERL5LIB环境变量,指向一个新的自定义库目录(例如site\lib),然后在运行工具之前确保环境是建立。

作为后续内容,请参阅PerlFaq8 - How do I install a module from CPAN

另请参阅PerlFaq8 - How do I keep my own module/library directory?

答案 5 :(得分:1)

混合安装方法需要您不需要的心痛和头痛。

不要将CPAN与Active Perl一起使用。使用PPM。*

可以在Randy Kobes' site找到PPM下载源。

如果找不到所需模块的PPM,可以使用Mr. Kobes make_ppm轻松构建自己的PPM。

您可以下载分发版并只运行make_ppm来构建PPM,但我更喜欢进行更“正常”的构建过程:

perl Makefile.PL
make
make test
make_ppm

*如果您在c:/ perl / site / *之外安装文件,则可以使用CPAN。只是不要将CPAN shell模块与PPM模块混合在一起。