zabbix报错之:started: undefined symbol: pcre_free_study

zabbix报错之:./zabbix_server: lld worker #2 started: symbol lookup error: ./zabbix_server: lld worker #2 started: undefined symbol: pcre_free_study
 58051:20201013:070153.268 One child process died (PID:58106,exitcode/signal:127). Exiting ...

 

处理步骤:

1、查看zabbix_server脚本所需要的依赖包

[root@localhost home]# ldd ./zabbix/zabbix4.4.6/sbin/zabbix_server 
    linux-vdso.so.1 =>  (0x00007fff1a3ff000)
    libmysqlclient.so.20 => /home/mysql/mysql5.7.19/lib/libmysqlclient.so.20 (0x00007fe0c6ed9000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fe0c6cbc000)
    libm.so.6 => /lib64/libm.so.6 (0x00007fe0c69ba000)
    librt.so.1 => /lib64/librt.so.1 (0x00007fe0c67b2000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00007fe0c65ad000)
    libodbc.so.2 => /usr/lib64/libodbc.so.2 (0x00007fe0c6346000)
    libnetsnmp.so.20 => /usr/lib64/libnetsnmp.so.20 (0x00007fe0c606c000)
    libz.so.1 => /lib64/libz.so.1 (0x00007fe0c5e55000)
    libevent-1.4.so.2 => /usr/lib64/libevent-1.4.so.2 (0x00007fe0c5c3a000)
    libldap-2.4.so.2 => /lib64/libldap-2.4.so.2 (0x00007fe0c59e9000)
    liblber-2.4.so.2 => /lib64/liblber-2.4.so.2 (0x00007fe0c57d9000)
    libcurl.so.4 => /usr/lib64/libcurl.so.4 (0x00007fe0c5584000)
    libresolv.so.2 => /lib64/libresolv.so.2 (0x00007fe0c536a000)
    libpcre.so.0 => /lib64/libpcre.so.0 (0x00007fe0c513d000)
    ...

2、根据报错提示:undefined symbol: pcre_free_study  确定与pcre有关,定位到第一步与pcre有关的依赖为:

libpcre.so.0 => /lib64/libpcre.so.0 (0x00007fe0c513d000)

3、查看该路径下的库文件是否有该符号的定义:

[root@localhost home]# ll /lib64/libpcre.so.0
lrwxrwxrwx. 1 root root 16 Sep 29 10:41 /lib64/libpcre.so.0 -> libpcre.so.0.0.1
[root@localhost home]# nm -D  /lib64/libpcre.so.0.0.1  |grep pcre_free_study     这里是空的

4、检查安装的pcre路径下的lib目录该库文件是否包含该符号定义

  注:pcre的安装请自行百度,这里的/usr/local/pcre是本人当时编译安装pcre指定的路径  --prefix=/usr/local/pcre

[root@localhost home]# nm -D  /usr/local/pcre/lib/libpcre.so.0 |grep pcre_free_study
0000000000016a60 T pcre_free_study
5、从第3步我们指定原有的路径下的库文件是不包含pcre_free_study符号定义的,删除原有/lib64下的相应库文件

[root@localhost home]# rm -rf /lib64/libpcre.so.0
[root@localhost home]# ll /lib64/ | grep libpcre
grep: error while loading shared libraries: libpcre.so.0: cannot open shared object file: No such file or directory
6、删除完成,接下来建立软链接到/lib64

[root@localhost home]# ln -s /usr/local/pcre/lib/libpcre.so.0.0.1  /lib64/libpcre.so.0
[root@localhost home]# ll /lib64/libpcre.so.0
lrwxrwxrwx. 1 root root 36 Oct 13 07:15 /lib64/libpcre.so.0 -> /usr/local/pcre/lib/libpcre.so.0.0.1
[root@localhost home]# nm -D  /lib64/libpcre.so.0  |grep pcre_free_study
0000000000016a60 T pcre_free_study

 

完成以上操作即可解决此报错,如果帮到您还请给个关注点赞!!  知识共分享,有疑问可留意
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值