mariadb-тест / mysqltest: ошибка поиска символа: mariadb-тест: неопределенный символ: PCRE2regcomp

#mysql #mariadb #debian

Вопрос:

Я пытаюсь настроить свою базу данных, и для этого я хотел бы попробовать клиентскую программу mariadb-test (или mysqltest). Я несколько раз пытался установить его через apt (который я обновил), загрузить пакет и установить с помощью dpkg, но я всегда сталкиваюсь с этой ошибкой:

 mysqltest: symbol lookup error: mysqltest: undefined symbol: PCRE2regcomp
 

Я понимаю, что должна быть ошибка с зависимостями, но я не знаю, как ее решить.

Есть какие-нибудь предложения?

Спасибо


Окружающая среда:

  • Разрушитель Debian
  • MariaDB 10.5.12
  • Nginx 1.18

 ldd /usr/bin/mysqltest
    linux-vdso.so.1 (0x00007ffd6dce5000)
    libpcre2-posix.so.2 => /lib/x86_64-linux-gnu/libpcre2-posix.so.2 (0x00007f02e00cf000)
    libpcre2-8.so.0 => /lib/x86_64-linux-gnu/libpcre2-8.so.0 (0x00007f02e003c000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f02e001b000)
    libssl.so.1.1 => /lib/x86_64-linux-gnu/libssl.so.1.1 (0x00007f02dff89000)
    libcrypto.so.1.1 => /lib/x86_64-linux-gnu/libcrypto.so.1.1 (0x00007f02dfc9d000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f02dfc98000)
    libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f02dfa78000)
    libstdc  .so.6 => /lib/x86_64-linux-gnu/libstdc  .so.6 (0x00007f02df8f4000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f02df771000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f02df5b0000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f02e0524000)
    libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f02df596000)
 

Редактировать:

Ладно, теперь это становится странным. Я создал виртуальную машину со свежей установкой debian, установил mariadb-server-10.5 в соответствии с этим, установил mariadb-тест из apt и заставил его работать. Затем я реплицировался на сервере, удалил старый репозиторий из списка apt/sources., добавил его по ссылке, удалил mariadb-тест и связанные библиотеки pcre и переустановил mariadb-тест из apt.

Та же ошибка.

ldd /bin/mariadb-тест выдает одинаковые результаты на обеих машинах (за исключением шестнадцатеричных чисел).

Поэтому на данный момент я не уверен, что проблема в пакетах, но на самом деле не знаю, что делать дальше.

Комментарии:

1. если это пакет debian, сообщите в bugs.debian.org. Если это отчет о распространяемом пакете MariaDB для jira.mariadb.org.

2. Привет @danblack, спасибо за ваш комментарий. Я сообщал об ошибке в debien, когда она предупредила меня, что бастер поставляется с mariadb 10.3, а не 10.5. Так что это не проблема с пакетом debian. Но поскольку я смог заставить mariadb-тест работать над новой установкой, я не думаю, что это также проблема с пакетами MariaDB. Дайте мне знать, если у вас есть какие-либо другие предложения.

Ответ №1:

Пакеты Debian и MariaDB установили mariadb-тест в /usr/bin.

Это похоже, возможно, на двоичный файл, который был установлен в / с —skip-префиксом=1. Отсутствующий символ связан с тем, что он был снова связан с версией pcre 1, а не с версией 2.

Это также ошибка распространения, так как двоичные тарболлы должны были быть статически связаны.

Комментарии:

1. Еще раз спасибо, что заглянули в этот @danblack. У вас есть какие-нибудь предложения о том, как я мог бы это исправить? Извините, если я что-то упустил.

2. Это выглядит как испорченная скомпилированная версия pcre2 в вашей системе. Единственная ссылка на PCRE2regcomp, которую я видел, находится в файле readme github.com/luvit/pcre2 , в качестве необязательного параметра компиляции. mariadb-тест посвящен функциональному тестированию сервера MariaDB. На самом деле это не поможет вам с настройкой. Задайте вопрос о настройке на dba.stackexchange.com с вашей конфигурацией и show global status выводом.