我刚刚得到了一台新的Mac,并试图为我的perl应用程序设置一个本地开发环境几天而没有运气。 我没有得到快速的地方,所以我希望成功的人可以帮助。
我开始安装MAMP,我认为会照顾一切,但不幸的是,它并没有考虑到一些重要的Perl模块。 我使用CPAN来安装我们所需的所有模块,但似乎DBD :: mysql不能通过CPAN正确安装。 在网上阅读了很多,很多人报告这个问题,并build议使用MacPorts安装模块,我已经尝试使用以下命令没有运气:
sudo port install p5-dbd-mysql
在成功安装了DBD :: mysql之后,当运行我们的Perl脚本时,Apache会继续报告以下错误:
[Fri Apr 30 18:51:07 2010] [error] [client 127.0.0.1] install_driver(mysql) failed: Can't locate DBD/mysql.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 (eval 1835) line 3. [Fri Apr 30 18:51:07 2010] [error] [client 127.0.0.1] Perhaps the DBD::mysql perl module hasn't been fully installed, [Fri Apr 30 18:51:07 2010] [error] [client 127.0.0.1] or perhaps the capitalisation of 'mysql' isn't right. [Fri Apr 30 18:51:07 2010] [error] [client 127.0.0.1] Available drivers: DBM, ExampleP, File, Gofer, Proxy, SQLite, Sponge.
我不确定该从哪里出发,但是如果Perl无法与数据库交谈,那么我的Mac并不是一个开发环境。 我非常感谢您能够提供的任何帮助和build议,使我的系统设置成功。 提前致谢!
我已经花了近4天的时间来处理这个问题,这里的设置终于让我在那里:
% export VERSIONER_PERL_PREFER_32_BIT=yes
% defaults write com.apple.versioner.perl Prefer-32-Bit -bool yes
% defaults write com.apple.versioner.perl Version 5.8.9
% perl Makefile.PL
% make
% sudo make install
更新:
% defaults write /Library/Preferences/com.apple.versioner.perl Version 5.8.9
你必须是一个pipe理员才能做到这一点。 在这之后,HUP apache将会全部设置好。
我经历了与史蒂夫·艾维一样的头痛,同样的解决scheme。
另外,因为我使用的是mod_perl2,所以我还必须手动构buildmod_perl – 如果从CPAN下载,则发出:
$ cd ~/.cpan/build/mod_perl-2.* $ export ARCHFLAGS="-arch i386 -arch x86_64" $ export CFLAGS="-arch i386 -arch x86_64" $ perl Makefile.PL # (will prompt for where apxs is: /usr/sbin/apxs $ make -j8 # make test will fail ... had to modify a file: $ vi t/response/TestAPI/access2.pm # around line 117, comment out the line: AuthGroupFile @DocumentRoot@/api/auth-groups # (I have no idea *why* this is failing, though) $ make test # in my case, it failed a couple of tests ... 5 out of 238 # most were because we're running older versions of # modules, or the pure-perl varient (you'll see 'PP' in # the module name, or it complains about (something)XS) # If you're concerned, see t/logs/error_log $ sudo make install
然后按照Michael Cramer的build议强制Apache2降低到32位