Bugzilla安装/ perl-DBD-mysql

运行./checksetup.pl时,我得到这个安装停止的错误。

Reading ./localconfig... Checking for DBD-mysql (v4.00) ok: found v4.018 Checking for MySQL (v4.1.2) ok: found v5.5.11 /usr/bin/perl: symbol lookup error: lib/i386-linux-thread-multi/auto/DBD/mysql/mysql.so: undefined symbol: is_prefix 

Bugzilla 4.0.1 / CentOS 5.5

 perl -v This is perl, v5.8.8 built for i386-linux-thread-multi mysql Server version: 5.5.11 MySQL Community Server (GPL) by Remi 

要做什么?

谢谢安迪


试图运行cpan> install DBD::mysql给出:

  /usr/bin/make -- OK Running make test PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t t/00base.t .................. 1/6 Bailout called. Further testing stopped: Unable to load DBD::mysql # Failed test 'use DBD::mysql;' # at t/00base.t line 21. # Tried to use 'DBD::mysql'. # Error: Can't load '/root/.cpan/build/DBD-mysql-4.018/blib/arch/auto/DBD/mysql/mysql.so' for module DBD::mysql: /root/.cpan/build/DBD-mysql-4.018/blib/arch/auto/DBD/mysql/mysql.so: undefined symbol: is_prefix at /usr/lib/perl5/5.8.8/i386-linux-thread-multi/DynaLoader.pm line 230. # at (eval 7) line 2 # Compilation failed in require at (eval 7) line 2. # BEGIN failed--compilation aborted at (eval 7) line 2. FAILED--Further testing stopped: Unable to load DBD::mysql make: *** [test_dynamic] Error 255 /usr/bin/make test -- NOT OK Running make install make test had returned bad status, won't install without force 

至于perl -e 'use DBD::mysql;' 这没有给控制台什么,只是回到提示。

显然,安装DBD驱动程序时出现了问题。

您应该直接从CentOS仓库安装Perl模块:

 yum install perl-DBD-MySQL 

但是,如果你有一个特定的原因使用CPAN客户端来安装模块,它需要一个构build环境(即一个C编译器)以及系统上的MySQL C头文件。 通常情况下,您可以通过安装两个附加软件包

 yum install mysql-devel libz-devel 

现在您可以正确编译DBD驱动程序。

在我看来,像perl共享对象没有正确链接到libmysql库,这很可能是由于版本差异。

您可能需要手工重新安装DBD :: mysql模块。

首先再做一个诊断步骤,因为这也会失败:

 # perl -e 'use DBD::mysql;' 

这应该给你同样的错误,最有可能的,但如果可能给你更有用的信息。

如果您需要手动安装DBD :: mysql模块,请使用以下命令:

 # perl -MCPAN -e shell cpan> install DBD::mysql 

如果仍然失败,还有另外一个select,使用yum install perl-DBD-MySQL从repo进行yum install perl-DBD-MySQL 。 (使用yum search dbd来得到确切的名字)。 这比从cpan安装更快,因为依赖关系是自动安装的,而不是从源代码编译的。

HTH