Я пытаюсь настроить среду разработки Perl на своем ноутбуке Mac, и мне очень тяжело было работать. Я думал, что все настроено правильно, но когда я пытаюсь запустить образец сценария, он сообщает об ошибках в модуле DBI и не может получить доступ к БД.Как я могу установить DBI Perl на Mac OS X, чтобы Apache мог его найти?
Вот что сообщается в журналах ошибок 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-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, используя следующие команды, как указано в этом forum post:
For DBI
1. cd /Library/Perl/DBI-1.611
2. sudo Perl Makefile.PL
3. sudo make
4. sudo make install
For DBD
1. cd /Library/Perl/DBD-mysql-4.014
2. sudo Perl Makefile.PL --mysql_config=/Applications/MAMP/Library/bin/mysql_config
3. sudo make
4. sudo make install
То, что я заметил при запуске вышеприведенных команд, заключается в том, что файлы, похоже, устанавливаются в каталог '/opt/local/lib/perl5/site_perl/5.8.9/darwin-2level/', который, похоже, не является одним из каталоги поиска, которые Apache упоминает в e rror в начале этого сообщения. Вот то, что я вижу во время установки:
$ 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-что Апач помощью является система Perl, которая установлена в системных каталогов и является perl 5.10.0. Perl, который вы используете для сборки и установки модулей, - это локально установленный perl 5.8.9. – hobbs
@hobbs - Мне было интересно об этом, но я не мог понять, почему разница в версиях. Как мне с этим справиться? Могу ли я установить его так, чтобы команда perl представляла собой системную версию perl 5.10.0? Если нет, как бы вы порекомендовали использовать правильный perl-вызов для компиляции модулей? –
C. Вы можете и, вероятно, должны это сделать, но мои навыки sysadmin для Mac не соответствуют нюхательным свойствам. В качестве обходного пути попробуйте выполнить '/ usr/bin/perl Makefile.PL' при создании материала, а затем он должен быть построен против этого конкретного perl и установить его в свои директории. – hobbs