在 Strawberry Portable 5.20.2 上安装 Pod::Spell 失败

Install of Pod::Spell failing on Strawberry Portable 5.20.2

当我尝试在 Strawberry 5.20.2(64 位 PortableZIP 版本)上 cpanm Pod::Spell 时,它会将 I18N::Langinfo 标记为依赖项。当它尝试下载 I18N::Langinfo 的分发版时,它会将其定位在 R/RJ/RJBS/perl-520.0.tar.gz 中,并且明智地认为最好继续。

Pod::Spell 仅作为 Perl::Critic.

的依赖项才有意义

关于如何解决这个依赖问题有什么建议吗?

有意思。我在Windows上自己搭建的Perl上找了I18N::Langinfo,也没有安装。我本以为它会被安装,这样它就会发出嘶哑的声音:

croak("nl_langinfo() not implemented on this architecture");

在我看来问题不是 Strawberry 或 ActiveState 特有的(因为我是从源代码构建的)。也许值得构建当前的 blead,如果 I18N::Langinfo 仍未安装,请将此作为错误报告给 p5p。

现在,即使您可以安装该模块,我也不希望它在 Windows 上与非 Cygwin perl 一起工作。因此,如果 Pod::Spell 真的依赖模块,它无论如何都无法正常工作。

但是,坦率地说,查看 Pod::Spell 的代码,我并不是很清楚为什么它应该依赖于 I18N::Langinfo

因此,我切换到 cpanmPod::Spell 工作目录和一个 nmake test(在你的例子中,这将是 dmake test with Strawberry Perl):

# *** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING ***
#
# The following REQUIRED prerequisites were not satisfied:
#
# I18N::Langinfo is not installed (any version required)
#
t[=24=]-report-prereqs.t .. ok
t\basic.t .............. ok
t\debug.t .............. ok
t\get-stopwords.t ...... ok
t\text-block.t ......... ok
t\utf8.t ............... ok
All tests successful.
Files=7, Tests=24,  9 wallclock secs ( 0.13 usr +  0.02 sys =  0.14 CPU)
Result: PASS

因此,我继续使用 nmake install 安装模块(在您的情况下 dmake install)。

podspell 似乎有效。

但是,恕我直言,您最好只使用 aspell,如:

C:\...> aspell --mode=perl lib\Pod\Spell.pm

注意:我使用的是通过 Cygwin 安装的 Aspell 0.60.6.1。

这是Pod::Spell依赖这个模块的一个bug,我在上个版本中没有仔细检查别人的补丁。我的临时修复是安装以前的版本,因为此版本中唯一真正的变化是 podspell 而不是整个模块。以后会修复的。