Mac OS X上的DBD :: Pg - 找不到任何方法

时间:2012-08-02 19:45:48

标签: macos perl cgi-bin dbd-pg

从命令行执行.cgi(作为有权访问数据库的用户),我得

  

install_driver(Pg)失败:无法在@INC中找到DBD / Pg.pm(@INC包含:   /Library/Perl/5.12/darwin-thread-multi-2level /Library/Perl/5.12   /Network/Library/Perl/5.12/darwin-thread-multi-2level /Network/Library/Perl/5.12   /Library/Perl/Updates/5.12.4 /System/Library/Perl/5.12/darwin-thread-multi-2level   /System/Library/Perl/5.12 /System/Library/Perl/Extras/5.12/darwin-thread-multi-2level   /System/Library/Perl/Extras/5.12。)at(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.2     CPAN:2.19.2最新     DBD :: Pg开发人员(DBDPG)     dbd-pg@perl.org

尝试通过PERL5LIB或PERLLIB导出上述路径没有不同的结果。

.cgi引用/ usr / bin / perl,告诉

  

这是为darwin-thread-multi-2level构建的perl 5,版本12,subversion 4(v5.12.4)   (有2个已注册的补丁,有关详细信息,请参阅perl -V)

我喜欢永久地将模块路径设置为安装DBD :: Pg的路径(/ opt / ...)。我想知道为什么错误输出目录列表没有提到它。

我通过cpanm安装了DBD :: Pg。

我使用Mac OS X Mountain Lion。

2 个答案:

答案 0 :(得分:7)

您似乎安装了两个不同的Perl版本。运行脚本的脚本与用于运行脚本的脚本不同cpan。要使用正确的Perl安装DBD :: Pg,请使用

perl -MCPAN -e'install DBD::Pg'

如果需要,将perl替换为用于运行脚本的Perl的路径。

答案 1 :(得分:2)

/ opt / ...表示“第三方”Perl。 “哪个perl”,“哪个cpan”表示运行capn使用第三方Perl。这是MacPort的。当我使用cpan和cpanm安装时,第三方Perl得到了更新。执行不同的用户和/ usr / bin / perl shebang指示使用Mac OS X perl。由于我必须使用shebang和不同的用户,我必须使用Mac OS X perl。通过/ usr / bin / cpan显式添加模块DBD :: Pg将模块安装到Mac OS X Perl。现在我的.cgi运行了。切换到第三方Perl的替代方案是将shebang更改为“... / env perl”或在文件系统中使用别名。