【发布时间】:2019-06-22 16:17:24
【问题描述】:
我需要使用MSYS Perl 才能在 Windows 7 上的 MSYS2 上安装 autoconf,因为 ActivePerl 或 Strawberry Perl 不适用于 autoconf 安装。唯一的问题是 MSYS Perl 的默认安装似乎没有包含一些基本模块,例如 strict 或 Carp。当我制作 autoconf 时,它会给出:
在@INC 中找不到 Carp.pm(您可能需要安装 Carp 模块)(@INC 包含:../lib /usr/local/perl-5.22.1/lib/perl5/core_perl /usr /local/perl-5.22.1/lib/perl5/site_perl /usr/local/perl-5.22.1/lib/perl5/vendor_perl
当我尝试手动安装Carp 时,在perl Makefile.PL 步骤中我得到:
在@INC 中找不到warnings.pm
问题是,为了安装warnings.pm,我需要安装基本模块集,例如strict,但这些模块似乎不存在于核心模块目录/usr/local/perl-5.22.1/lib/perl5/core_perl中
如何为我的 MSYS Perl 安装这些基本模块?
【问题讨论】:
-
只是我的 0.02 美元,但
/usr/local/听起来不像是从 MSYS2 Perl 包中调用/usr/bin/perl.exe... -
仅供参考:在我的 WIndows 10 机器上的 MSYS2 下打印
@INC时,我只能得到/usr/lib/perl5和/usr/share/perl5下的路径。 -
@StefanBecker 谢谢你的评论。我故意将 MSYS Perl 安装到 /usr/local 下的一个新目录中,以便能够在需要时切换到 ActiveState 的 Perl。我将这个新的 Perl 定义到 MSYS 的 .bash_profile 中,就像
export PERL5=/usr/local/perl-5.22.1 && PATH=$PATH:$PERL5/bin一样,我当然从 Windows 系统环境变量中删除了 ActiveState 的 Perl 路径。此设置在 MSYS 环境下运行良好。 -
为了定义 Perl 模块的目录,我在 ~/.bash_profile
export PERL5LIB=$PERL5/lib/perl5/vendor_perl"${PERL5LIB:+:$PERL5LIB}"export PERL5LIB=$PERL5/lib/perl5/site_perl"${PERL5LIB:+:$PERL5LIB}"export PERL5LIB=$PERL5/lib/perl5/core_perl"${PERL5LIB:+:$PERL5LIB}"中输入了这些行,这似乎也可以正常工作。 -
@Romario:如果您的“切换要求”是静态的,那么使用
pacman安装msys2 perl 包然后将/usr/bin/perl设为可以切换的符号链接怎么样?您甚至可能想考虑使用alternatives系统。
标签: perl module cpan autoconf msys2