如何安装Perl';在Mac OS X上安装DBI以便Apache可以找到它?
我正试图在我的Mac笔记本电脑上设置一个Perl开发环境,但一直很难让它正常工作。我认为我已经正确配置了所有内容,但当我尝试运行示例脚本时,它报告了DBI模块的错误,无法访问数据库 以下是Apache错误日志中报告的内容:如何安装Perl';在Mac OS X上安装DBI以便Apache可以找到它?,perl,dbi,mamp,Perl,Dbi,Mamp,我正试图在我的Mac笔记本电脑上设置一个Perl开发环境,但一直很难让它正常工作。我认为我已经正确配置了所有内容,但当我尝试运行示例脚本时,它报告了DBI模块的错误,无法访问数据库 以下是Apache错误日志中报告的内容: [Fri Apr 30 23:11:33 2010] [error] [client 127.0.0.1] Can't locate DBI.pm in @INC (@INC contains: /Library/Perl/Updates/5.10.0/darwin-thre
[Fri Apr 30 23:11:33 2010] [error] [client 127.0.0.1] Can't locate DBI.pm in @INC (@INC contains: /Library/Perl/Updates/5.10.0/darwin-thread-multi-2level /Library/Perl/Updates/5.10.0 /System/Library/Perl/5.10.0/darwin-thread-multi-2level /System/Library/Perl/5.10.0 /Library/Perl/5.10.0/darwin-thread-multi-2level /Library/Perl/5.10.0 /Network/Library/Perl/5.10.0/darwin-thread-multi-2level /Network/Library/Perl/5.10.0 /Network/Library/Perl /System/Library/Perl/Extras/5.10.0/darwin-thread-multi-2level /System/Library/Perl/Extras/5.10.0 .) at main.pm line 5.
我手动下载并安装了这两个模块,以便使用本文中指定的以下命令使用MAMP:
在运行上述命令时,我注意到文件似乎安装在“/opt/local/lib/perl5/site_perl/5.8.9/darwin-2level/”目录中,该目录似乎不是Apache在本文开头的错误中提到的搜索目录之一。以下是我在安装过程中看到的内容:
$ sudo make install
Files found in blib/arch: installing files in blib/lib into architecture dependent library tree
Installing /opt/local/lib/perl5/site_perl/5.8.9/darwin-2level/auto/DBI/DBI.bundle
Installing /opt/local/lib/perl5/site_perl/5.8.9/darwin-2level/auto/DBI/dbipport.h
Installing /opt/local/lib/perl5/site_perl/5.8.9/darwin-2level/auto/DBI/DBIXS.h
Installing /opt/local/lib/perl5/site_perl/5.8.9/darwin-2level/auto/DBI/dbixs_rev.h
Installing /opt/local/lib/perl5/site_perl/5.8.9/darwin-2level/auto/DBI/Driver.xst
Installing /opt/local/lib/perl5/site_perl/5.8.9/darwin-2level/auto/DBI/Driver_xst.h
Installing /opt/local/lib/perl5/site_perl/5.8.9/darwin-2level/DBI.pm
Installing /opt/local/lib/perl5/site_perl/5.8.9/darwin-2level/TASKS.pod
Installing /opt/local/lib/perl5/site_perl/5.8.9/darwin-2level/DBD/DBM.pm
Installing /opt/local/lib/perl5/site_perl/5.8.9/darwin-2level/DBD/File.pm
Installing /opt/local/lib/perl5/site_perl/5.8.9/darwin-2level/DBD/Gofer.pm
Installing /opt/local/lib/perl5/site_perl/5.8.9/darwin-2level/DBI/Changes.pm
Installing /opt/local/lib/perl5/site_perl/5.8.9/darwin-2level/DBI/DBD.pm
Installing /opt/local/lib/perl5/site_perl/5.8.9/darwin-2level/DBI/Profile.pm
Installing /opt/local/lib/perl5/site_perl/5.8.9/darwin-2level/DBI/ProxyServer.pm
Installing /opt/local/lib/perl5/site_perl/5.8.9/darwin-2level/DBI/PurePerl.pm
Installing /opt/local/share/man/man3/DBD::DBM.3pm
Installing /opt/local/share/man/man3/DBD::File.3pm
Installing /opt/local/share/man/man3/DBD::Gofer.3pm
Installing /opt/local/share/man/man3/DBI.3pm
Installing /opt/local/share/man/man3/DBI::DBD.3pm
Installing /opt/local/share/man/man3/DBI::Profile.3pm
Installing /opt/local/share/man/man3/DBI::ProxyServer.3pm
Installing /opt/local/share/man/man3/DBI::PurePerl.3pm
Installing /opt/local/share/man/man3/TASKS.3pm
Installing /opt/local/bin/dbiprof
Installing /opt/local/bin/dbiproxy
Writing /opt/local/lib/perl5/site_perl/5.8.9/darwin-2level/auto/DBI/.packlist
Appending installation info to /opt/local/lib/perl5/5.8.9/darwin-2level/perllocal.pod
我的问题是,我做错了什么,我如何1)让Apache查找安装DBD和DBI模块的正确目录,或者2)更新安装模块的方式,将它们安装到其中一个搜索目录中。老实说,我不知道什么选择更有意义,也可以在这方面提供指导
你可能知道,我现在很迷茫。请帮忙!!!提前感谢。看起来您已经安装了另一个Perl via(/opt/local是所有macports安装的位置),并且/opt/local/bin在
$PATH
中比/usr/bin中的系统Perl更早。这很好,如果您乐于运行Perl5.8.9而不是Perl5.10.0(提示:如果您不确定这些差异,那么这些差异并不重要)
通常建议不要对系统进行额外安装。苹果可能会通过定期的系统更新来升级组件,这可能会干扰您所做的任何修改。如果您在安装过程中出错,如果不进行完整的系统重新安装或不认真了解操作系统的细节,就很难纠正错误。因此,既然您已经准备好了另一个Perl安装,我强烈建议您继续使用它
但是,如果macports上已有可用的发行版,则可能不应该手动安装库。我使用portsearchdbi
和portsearchdbd
来查找它们:发行版名为p5dbi和p5dbdmsql。您可以像安装任何其他macports模块一样安装这些模块:使用sudo-port-install
。(您可能还需要安装mod_perl本身。)
之后,您只需告诉Apache/mod_perl使用该perl安装,而不是系统perl。我从来没有这样做过,所以我不能建议最好的方法。但是,快速搜索表明默认情况下,macports版本的apache将运行(通过相同的$PATH顺序),因此我只想试试看:)。答案很好,以太。我已经做了很多次了,我可以给你一些建议: 注意:我显然只限于文章中的一个链接,所以我不得不删除所有注释。谢天谢地,我把它们都放在有标签的地方,很好吃。在Stack Overflow荒谬的反垃圾邮件措施下,我删除了一个链接,并将其标记为(*)
端口信息
是固定的伙伴。他们目前拥有6863个端口,(*),覆盖了您的大部分基地/usr/local
中。文件系统层次结构的这一部分是您可以使用的。不要误以为Macports没有您正在安装的设备,可以将其放在/opt/local
中,因为该软件始终会安装一些依赖项,这些依赖项也将是某些Macports软件的依赖项,并且如果某个端口的任何一个文件将覆盖不由Macports管理的现有文件,Macports将不允许安装该端口(除非你强迫,这总是不礼貌的)perl Makefile.PL;make;make test;sudo make install;cha;cha
),并渴望使用Macports时变得习惯的易用性
如果是这样,您完全可以使用cpan(*)实用程序、CPANPLUS(*)或cpanminus(*)来满足所有安装需求。
$ sudo make install
Files found in blib/arch: installing files in blib/lib into architecture dependent library tree
Installing /opt/local/lib/perl5/site_perl/5.8.9/darwin-2level/auto/DBI/DBI.bundle
Installing /opt/local/lib/perl5/site_perl/5.8.9/darwin-2level/auto/DBI/dbipport.h
Installing /opt/local/lib/perl5/site_perl/5.8.9/darwin-2level/auto/DBI/DBIXS.h
Installing /opt/local/lib/perl5/site_perl/5.8.9/darwin-2level/auto/DBI/dbixs_rev.h
Installing /opt/local/lib/perl5/site_perl/5.8.9/darwin-2level/auto/DBI/Driver.xst
Installing /opt/local/lib/perl5/site_perl/5.8.9/darwin-2level/auto/DBI/Driver_xst.h
Installing /opt/local/lib/perl5/site_perl/5.8.9/darwin-2level/DBI.pm
Installing /opt/local/lib/perl5/site_perl/5.8.9/darwin-2level/TASKS.pod
Installing /opt/local/lib/perl5/site_perl/5.8.9/darwin-2level/DBD/DBM.pm
Installing /opt/local/lib/perl5/site_perl/5.8.9/darwin-2level/DBD/File.pm
Installing /opt/local/lib/perl5/site_perl/5.8.9/darwin-2level/DBD/Gofer.pm
Installing /opt/local/lib/perl5/site_perl/5.8.9/darwin-2level/DBI/Changes.pm
Installing /opt/local/lib/perl5/site_perl/5.8.9/darwin-2level/DBI/DBD.pm
Installing /opt/local/lib/perl5/site_perl/5.8.9/darwin-2level/DBI/Profile.pm
Installing /opt/local/lib/perl5/site_perl/5.8.9/darwin-2level/DBI/ProxyServer.pm
Installing /opt/local/lib/perl5/site_perl/5.8.9/darwin-2level/DBI/PurePerl.pm
Installing /opt/local/share/man/man3/DBD::DBM.3pm
Installing /opt/local/share/man/man3/DBD::File.3pm
Installing /opt/local/share/man/man3/DBD::Gofer.3pm
Installing /opt/local/share/man/man3/DBI.3pm
Installing /opt/local/share/man/man3/DBI::DBD.3pm
Installing /opt/local/share/man/man3/DBI::Profile.3pm
Installing /opt/local/share/man/man3/DBI::ProxyServer.3pm
Installing /opt/local/share/man/man3/DBI::PurePerl.3pm
Installing /opt/local/share/man/man3/TASKS.3pm
Installing /opt/local/bin/dbiprof
Installing /opt/local/bin/dbiproxy
Writing /opt/local/lib/perl5/site_perl/5.8.9/darwin-2level/auto/DBI/.packlist
Appending installation info to /opt/local/lib/perl5/5.8.9/darwin-2level/perllocal.pod
SetEnv PATH [colon-separated list of directories]
SetEnv PERL5LIB [colon-sep'd list of directories]
SetEnv PATH /opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/local/mysql/bin:$PATH
SetEnv PERL5LIB /opt/local/lib:/usr/local/lib