ActivePerl的ppm命令出错

4
我安装了。
On Windows 7 64-bit OS
ActivePerl 64bit 
Version 5.16.3.1603
on D disk as D:/perl64

我控制了Windows路径,没问题。
D:\perl64\site\bin; D:\perl64\bin;

当我打开 Git Bash 命令行并输入时:
ppm install DBI

或者

ppm install DBD::mysql

它显示出错误信息;
Can't locate ActivePerl/PPM/limited_inc.pm in @INC (@INC contains:
  /usr/lib/perl5/5.8.8/msys /usr/lib/perl5/5.8.8
  /usr/lib/perl5/site_perl/5.8.8/msys /usr/lib/perl5/site_perl/5.8.8
  /usr/lib/perl5/site_perl .) at /d/perl64/bin/ppm line 4. BEGIN
  failed--compilation aborted at /d/perl64/bin/ppm line 4.

我找不到任何帮助或教程。

看起来 Perl 的 5.8.85.16.3 产生了冲突。 - mpapec
1
你没有使用ActivePerl,而是在使用msys的Perl。 - ikegami
2个回答

4

您没有使用ActivePerl。您正在使用msys的Perl。假设它在路径中排名第一。您需要修改您的路径或编辑ppm.bat以加载正确的Perl。


0

补充一下@ikegami的答案,msys在/bin(或/usr/bin)文件夹中安装了perl。

perl.exe、perl5.8.8.exe、msys-perl5_8.dll、perldoc等等。

将这些文件移动到备份文件夹中,例如msys_perl。

  • cd /bin
  • mkdir msys_perl
  • mv *perl* msys_perl/

如果您不需要它们,也可以将它们删除。

现在,msys的Perl安装将不会与您的ActiveState Perl版本发生冲突。

您还可能需要从ActiveState Perl bin目录/c/Perl64/bin/perl.exe复制perl.exe/usr/bin/,以避免出现bad interpreter: No such file or directory错误消息,因为ppm从/usr/bin/perl读取。

  • cp /c/Perl64/bin/perl.exe /usr/bin/

那是很多工作啊!为什么不按照我的建议改变你的路径呢? - ikegami
我在你的回答中漏掉了“可能是因为它首先出现在路径中”...抱歉。一开始看时,我认为你建议删除包含msys版本Perl的PATH目录。 - lkisac
@ikegami 我修改了路径,以便正确的版本首先出现,我使用 perl -v 进行了验证,但 ppm 仍然从 msys perl 中读取。看来必须修改 ppm.bat。我猜我的解决方案将不需要修改 ppm.bat(这也是一个只读文件)。 - lkisac
此外,这可能会严重破坏依赖于系统 Perl 的东西。 - ikegami

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接