从命令行执行.cgi(作为有权访问数据库的用户),我得到
install_driver(Pg)失败:在@INC中找不到DBD/Pg.pm(@INC包含:/Library/Perll/5.12/darwin-thread-multi-2level/Library/Perl/5.12/Network/Library/Perl/5.12/darwin-thread-multi-2level/Network/Librare/Perl/5.12/LibraryPerl/Updates/5.12.4/System/Library/Perl/5.12/darwin-thread-multi-2level/System/Library/Perl/5.12/System/Librare/Perl/Extras/5.12/darwin-thread-multi-2level/System/Library/Perl/Extras/5.12.)在(eval 4)第3行。也许DBD::Pg-perl模块尚未完全安装,或者"Pg"的资本化可能不对。
cpan-D DBD::Pg显示
DBD::Pg
DBI的Postgres驱动程序T/TU/TURNSTEP/DBD-Pg-2.19.2.tar.gz/opt/local/lib/perl5/site_perl/5.12.4/darwin-thread-multi-2level/DBD/Pg.pm安装时间:2.19.2CPAN:2.19.2最新DBD::Pg Developers(DBDPG)dbd-pg@perl.org
尝试通过PERL5LIB或PERLLIB导出以上路径并没有不同的结果。
.cgi引用/usr/bin/perl,这告诉
这是为darwin-thread-multi-2level构建的perl5,版本12,subversion 4(v5.12.4)(有2个注册的补丁,请参阅perl-V了解更多详细信息)
我喜欢将模块路径永久设置为安装DBD::Pg的路径(/opt/…)。我想知道为什么错误输出目录列表中没有提到这一点。
我通过cpanm安装了DBD::Pg。
我使用Mac OS X Mountain Lion。
您似乎安装了两个不同版本的Perl。用于运行脚本的脚本与用于运行cpan
的脚本不同。要使用正确的Perl安装DBD::Pg,请使用
perl -MCPAN -e'install DBD::Pg'
如有必要,将perl
替换为用于运行脚本的Perl路径。
/opt/。。。表示"第三方"Perl。"which-perl"、"which-cpan"表明运行capn使用了第三方perl。那是麦克波特的。当我安装cpan和cpanm时,第三方Perl得到了更新。以不同用户身份执行,/usr/bin/perl-shebang指示使用Mac OS X perl。由于我必须使用shebang和不同的用户,所以我必须使用MacOSXPerl。通过/usr/bin/cpan DBD::Pg显式添加模块将模块安装到Mac OS X Perl中。现在我的.cgi运行了。切换到第三方Perl的替代方案是将shebang更改为"…/env-Perl"或在文件系统中使用别名。