При запуске ./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;'
это ничего не дает консоли, просто возвращается к подсказке.
Мне кажется, что разделяемый объект perl неправильно связан с библиотекой libmysql, что, скорее всего, связано с различиями в версиях.
Вероятно, вам потребуется переустановить, возможно, вручную, модуль DBD :: mysql.
Сначала еще один диагностический шаг, так как он тоже не должен работать:
# perl -e 'use DBD::mysql;'
Скорее всего, это должно дать вам ту же ошибку, но может дать вам более полезную информацию.
Если вам нужно установить модуль DBD :: mysql вручную, используйте это:
# perl -MCPAN -e shell
cpan> install DBD::mysql
Очевидно, что-то пошло не так с установкой вашего драйвера DBD.
Вероятно, вам следует установить модуль Perl напрямую из репозиториев CentOS:
yum install perl-DBD-MySQL
Но если у вас есть конкретная причина использовать клиент CPAN для установки модуля, ему потребуется среда сборки (то есть компилятор C), а также файлы заголовков MySQL C в системе. Обычно это делается путем установки двух дополнительных пакетов:
yum install mysql-devel libz-devel
Теперь вы можете правильно скомпилировать драйвер DBD.
Если по-прежнему не удается, есть другой вариант - установить из репо с помощью yum install perl-DBD-MySQL
. (используйте yum search dbd
чтобы получить точное название). Это быстрее, чем установка из cpan, потому что зависимости устанавливаются автоматически для вас, а не компилируются из исходников.
HTH