Bugzilla 安装 / perl-DBD-mysql

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;'这对控制台没有任何作用,只是返回提示。

答案1

显然,您的 DBD 驱动程序安装出了问题。

您可能应该直接从 CentOS 存储库安装 Perl 模块:

yum install perl-DBD-MySQL

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

yum install mysql-devel libz-devel

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

答案2

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

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

首先再进行一个诊断步骤,因为这也可能会失败:

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

这很可能会给你同样的错误,但它可能会给你更多有用的信息。

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

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

答案3

如果仍然失败,还有另一种选择,使用yum install perl-DBD-MySQL. 从 repo 安装(使用 .yum search dbd获取确切名称)。这比从 cpan 安装更快,因为依赖项会自动为您安装,而不是从源代码编译。

高血压

相关内容