Debian10下mariadb-test运行提示undefined symbol: PCRE2regcomp错误如何解决
排查解决步骤
- 验证PCRE2库符号是否正常
执行命令检查对应库是否包含缺失的符号:
如果无输出,说明当前加载的pcre2-posix库版本异常、被第三方修改过,或者编译时未导出对应符号。nm -D /lib/x86_64-linux-gnu/libpcre2-posix.so.2 | grep PCRE2regcomp - 排查是否有其他路径的PCRE2库被优先加载
首先检查LD_LIBRARY_PATH环境变量是否配置了自定义库路径,可能会覆盖系统默认路径的库:
如果有输出,逐一检查路径下是否存在libpcre2-posix.so.2文件,验证该文件的符号是否正常。echo $LD_LIBRARY_PATH
再检查系统ld缓存的加载优先级:
确认返回的路径和ldd显示的ldconfig -p | grep libpcre2-posix/lib/x86_64-linux-gnu/libpcre2-posix.so.2一致,若存在其他路径的同名库,优先删除异常路径的库文件后执行ldconfig更新缓存。 - 强制重装相关依赖包
确认库路径无异常后,强制重装pcre2相关依赖和mariadb-test包:
安装完成后执行apt purge mariadb-test libpcre2-posix2 libpcre2-8-0 apt autoremove apt install mariadb-testldconfig刷新缓存,再运行mysqltest验证。 - 排查包锁定状态
执行命令检查是否有相关包被锁定版本导致无法更新到正确版本:
如果有返回结果,执行apt-mark showhold | grep -E 'mariadb|pcre2'apt-mark unhold 包名解除锁定后再重新安装对应包。 - 清理残留二进制文件
若以上操作都无效,可能是之前手动dpkg安装的旧版本mysqltest二进制残留,执行全局搜索删除:
删除所有非find / -name mysqltest -type f 2>/dev/null/usr/bin/mysqltest的文件后,再重新安装mariadb-test即可。
内容的提问来源于stack exchange,提问作者RAMIREZ
相关产品推荐
相关产品推荐

