Instalação do Bugzilla / perl-DBD-mysql

1

Durante a execução de ./checksetup.pl, recebo este erro quando a instalação é interrompida.

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

O que fazer?

Obrigado Andi

Tentando executar 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

Quanto a perl -e 'use DBD::mysql;' , isso não dá nada para consolar, apenas para o prompt.

    
por Andi T 11.05.2011 / 14:33

3 respostas

1

Algo deu errado com a instalação do seu driver DBD, obviamente.

Você provavelmente deve instalar o módulo Perl diretamente dos repositórios do CentOS:

yum install perl-DBD-MySQL

Mas se você tiver um motivo específico para usar o cliente CPAN para instalar o módulo, ele precisará de um ambiente de desenvolvimento (ou seja, um compilador C) e também dos arquivos de cabeçalho do MySQL C no sistema. Normalmente, você faria isso instalando dois pacotes adicionais:

yum install mysql-devel libz-devel

Agora você pode compilar corretamente o driver DBD.

    
por 12.05.2011 / 12:02
1

Parece-me que o objeto compartilhado perl não está adequadamente vinculado à biblioteca libmysql, o que provavelmente se deve a diferenças de versão.

Você provavelmente precisará reinstalar, possivelmente à mão, o módulo DBD :: mysql.

Mais uma etapa de diagnóstico primeiro, pois isso também deve falhar:

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

Isso deve dar o mesmo erro, muito provavelmente, mas pode fornecer informações mais úteis.

Se você precisar instalar o módulo DBD :: mysql manualmente, use isto:

# perl -MCPAN -e shell
cpan> install DBD::mysql
    
por 11.05.2011 / 15:47
0

Se ainda falhar, há outra opção para instalar a partir do repositório usando yum install perl-DBD-MySQL . (use yum search dbd para obter o nome exato). Isso é mais rápido do que instalar a partir do cpan, porque as dependências são instaladas automaticamente para você e não compiladas de fontes.

HTH

    
por 11.05.2011 / 19:26

Tags