centos下 error while loading shared libraries 解决办法
摘要:最新在centos下面遇到了error while loading shared libraries 问题,记录一下。
问题描述
在centos下面运行postfix服务时出现以下问题:
- Unit postfix.service has begun starting up.
3月 11 18:38:38 localhost.localdomain aliasesdb[78383]: /usr/sbin/postconf: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: N
3月 11 18:38:38 localhost.localdomain aliasesdb[78383]: /usr/bin/newaliases: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file:
3月 11 18:38:38 localhost.localdomain postfix[78394]: /usr/sbin/postfix: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No s
3月 11 18:38:38 localhost.localdomain systemd[1]: postfix.service: control process exited, code=exited status=127
3月 11 18:38:38 localhost.localdomain systemd[1]: Failed to start Postfix Mail Transport Agent.
-- Subject: Unit postfix.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit postfix.service has failed.
使用ldconfig -p | grep mysql 查看系统具有的动态链接库版本libmysqlclient.so.20,可以看出是由于postfix缺少libmysqlclient.so.18动态链接库导致的。
解决问题
首先网上找到含有这个动态库文件的rpm包
获取到rpm包后,新建一个目录,将rpm移到新目录后,运行以下命令:
rpm2cpio mariadb-libs-5.5.68-1.el7.x86_64.rpm > 1.cpio
cpio -i --make-directories < 1.cpio
libmysqlclient.so.18 会出现到新目录中。把其移动到和libmysqlclient.so.20同一个目录下即可。
移动完后运行以下命令:
ldconfig
ldconfig -p | grep mysql
可以看到缺失的动态库加载成功。
相关附件
这里附上含有libmysqlclient.so.18的centos x64的rpm包mariadb-libs-5.5.68-1.el7.x86_64.rar
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。