У меня только что появился новый Mac, и я уже несколько дней безуспешно пытался настроить локальную среду разработки для своих приложений Perl. Я не могу быстро добраться туда, поэтому надеюсь, что кто-то еще, кто сделал это успешно, может помочь.
Я начал с установки MAMP, который, как я думал, позаботится обо всем за меня, но, к сожалению, он не позаботится о некоторых важных модулях Perl. Я использовал CPAN для установки всех наших необходимых модулей, за исключением того, что кажется, что DBD :: mysql неправильно устанавливается через CPAN. После большого количества чтений в Интернете многие люди сообщали о проблемах с этим и рекомендовали использовать MacPorts для установки модуля, который я безуспешно пытался сделать, используя следующую команду:
sudo port install p5-dbd-mysql
После того, что кажется успешной установкой DBD :: mysql, Apache продолжает сообщать следующую ошибку при попытке запустить любой из наших сценариев Perl:
[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.
Я не уверен, куда идти дальше, но мой Mac не особо подходит для среды разработки, если Perl не может взаимодействовать с базой данных. Я буду очень признателен за любую помощь и совет, которые вы могли бы предоставить для успешной настройки моей системы. Заранее спасибо!
Я потратил около 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
Для этого вам нужно быть администратором. После этого, HUP apache, и все будет готово.
Я пережил ту же головную боль, что и Стив Айви, с тем же решением.
Кроме того, поскольку я использую mod_perl2, мне также пришлось собрать mod_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
... а затем принудительно уменьшите Apache2 до 32 бит, выполнив Совет Майкла Крамера