Perl和MySQL运行正常(我可以登录到MysqL并访问我的表),但我的Perl脚本不再使用DBI,因为更新程序删除了我以前工作的所有Perl模块.
我使用CPAN重新安装了DBI和DBD :: MysqL,它们将它们安装到/opt/local/lib/perl5/site_perl/5.12.4/darwin-multi-2level/.将模块(DBI,DBD和“auto”中的所有内容)复制到/Library/Perl/5.16/darwin-multi-2level/(因为cpan使用的目录不在@INC中)后,我的脚本返回内部服务器错误(甚至使用FatalsToBrowser).
Apache错误日志说:
dyld: lazy symbol binding Failed: Symbol not found: _Perl_Istack_sp_ptr Referenced from: /opt/local/lib/perl5/site_perl/5.12.4/darwin-multi-2level/auto/DBI/DBI.bundle Expected in: flat namespace dyld: Symbol not found: _Perl_Istack_sp_ptr Referenced from: /opt/local/lib/perl5/site_perl/5.12.4/darwin-multi-2level/auto/DBI/DBI.bundle Expected in: flat namespace Premature end of script headers: test.pl
这有什么问题?也许是因为我复制了文件?也许我应该强制CPAN直接安装到/Library/Perl/5.16/?我如何告诉CPAN这样做?
有任何想法吗?
解决方法
>在启动之前,必须正确安装和配置MysqL x86 64位.
>从App Store安装XCode.
>在XCode中,打开“首选项/下载”菜单,然后安装命令行工具.
安装DBI:
>使用以下命令安装cpanm:sudo cpan App :: cpanminus.
>安装DBI:sudo cpanm DBI.
安装DBD :: MysqL:
>从CPAN获取必要的文件.打开CPAN终端:sudo perl -MCPAN -e’hell’.
>然后,运行以下命令:get DBD :: MysqL并退出.
>在编译之前,你必须创建一些别名,因为Mac上的MysqL安装方式与Linux不同 – 至少在之前的OS X版本中是这样:
cd /usr/local
sudo mkdir lib
cd lib
sudo ln -s /usr/local/MysqL/lib/*.dylib .
>最后,您必须安装并编译库:
cd ~/.cpan/build/DBD*/
sudo perl Makefile.PL –testuser=’yourMysqLuser’ –testpassword=’yourMysqLpassword’
sudo make
sudo make test
sudo make install
在cd~ / .cpan / build / DBD * /中,*表示你应该写下你刚刚从CPAN下载的文件的实际路径.目录的名称根据最新版本而变化,但很容易通过简单的ls找到它.
希望这对你有用.
编辑
这是我通过几次尝试失败的汇编,但我想我应该说出我的来源: