CPAN,即 Comprehensive Perl Archive Network(综合 Perl 存档网络),是遍布全球的 Perl 软件存档网络。 Perl 5.6.x 版本包含一些模块(包括 CPAN 和 CPAN::FirstTime),这些模块允许它从 Internet 上的 CPAN 站点获取 Perl 模块,验证其校验和,甚至使用 gcc 进行编译。 深入描述 CPAN 和 Perl 的 CPAN 功能超出了本文的范围,但我有一个提示和一个警告要提供。
首先是提示。 要安装 Example::Module 模块(不是真正的 Perl 模块),您需要输入命令
perl -MCPAN -e 'install Example::Module"
如果您是第一次使用 -MCPAN 标志,则会触发 CPAN::FirstTime 模块,并且会要求您选择 Perl 如何从 CPAN 获取和安装模块的各种选项。 这些都是措辞恰当的问题,并提供了合理的默认值。 但是,请务必注意此命令执行时的输出:您正在安装的模块可能依赖于其他模块,并且可能需要您返回并执行,例如,输入
perl -MCPAN -e 'install Example::PreRequisite"
然后再尝试安装第一个模块。
现在是警告:使用 CPAN 的安全性与其他任何 Internet 来源下载和安装任何其他软件的安全性并没有什么不同。 我个人认为 CPAN 实用程序看起来相当安全; 在安装之前,每个下载的模块都会自动根据包含密码学上很强的 MD5 哈希值的校验和进行检查。
但是,即使假设给定软件包的校验和可能不会与被篡改的模块一起被替换(这是一个很大的假设),这一切所能防止的也只是软件在被其作者上传到 CPAN 后未经授权的更改。 没有任何东西可以阻止一个邪恶的注册 CPAN 开发人员(任何人都可以注册成为开发人员)上传恶意代码以及有效的校验和。 请注意,也没有任何东西可以阻止那个邪恶的开发人员将坏东西发布到 SourceForge 或 Freshmeat。
因此,我希望我没有在赘述这一点,如果您真的想变得偏执,那么安装给定 Perl 模块最安全的方法是
tar -xzvf groovyperlmod.tar.gz
perl ./Makefile.PL make make test make install
请注意,如果 swatch 的 Makefile.PL 脚本提醒您需要哪些模块,那么要使用偏执安装方法,您需要记下所需的模块名称,然后在安装模块和重新运行 swatch 的 Makefile.PL 之前终止该脚本(通过普通的 Ctrl-C)。
实际上,还有第三种安装缺失 Perl 模块的方法:从您的 Linux 发行版的 FTP 站点或 CD-ROM 安装。 虽然没有一种方法能接近 CPAN 的选择,但大多数 Linux 发行版都打包了最流行的 Perl 模块的版本。 请参阅下表,了解您需要的 swatch 模块以及 Red Hat 7 和 Debian 2.2 中包含它们的软件包。
这些内容可能看起来与 swatch 没有什么特别的关联,而且确实如此,但它很重要——越来越多的实用程序要么作为 Perl 模块发布,要么作为依赖于 Perl 模块的 Perl 脚本发布,因此 swatch 很可能不会是您安装的最后一个基于 Makefile.PL 的实用程序。 了解所有这些模块疯狂行为的一些后果值得我花这么多笔墨,相信我。