Ubuntu运行原CentOS程序缺失libmysqlclient.so.16求助
解决Ubuntu下缺失libmysqlclient.so.16的问题
首先得点明核心问题:你用rpm包解决Ubuntu的库缺失问题是走不通的——Ubuntu基于Debian体系,用的是.deb包管理系统,rpm包是给CentOS/RHEL这类RedHat系系统设计的,装了也不会被Ubuntu的系统库识别,这就是为什么你安装后问题还没解决的原因。
下面给你两个靠谱的解决方案,按顺序尝试即可:
方案一:利用高版本库创建软链接(简单快速)
多数情况下,高版本的libmysqlclient是向下兼容低版本的,你可以试试这个方法:
- 先查找系统里已安装的mysql客户端库文件:
find /usr/lib -name libmysqlclient.so.* - 如果输出里有类似
/usr/lib/x86_64-linux-gnu/libmysqlclient.so.20.x.x这样的高版本文件,就用它创建软链接:
(记得把sudo ln -s /usr/lib/x86_64-linux-gnu/libmysqlclient.so.20.x.x /usr/lib/x86_64-linux-gnu/libmysqlclient.so.1620.x.x替换成你实际找到的版本号) - 最后更新系统库缓存:
现在再启动你的程序,大概率能正常运行。sudo ldconfig
方案二:安装对应版本的.deb兼容库
如果软链接方法不行(比如高版本不兼容),那就需要安装libmysqlclient16的deb包:
- 下载对应架构的
libmysqlclient16deb包(比如64位系统就找amd64版本),直接用wget下载即可:wget http://archive.ubuntu.com/ubuntu/pool/main/m/mysql-5.1/libmysqlclient16_5.1.73-1ubuntu0.10.04.1_amd64.deb - 安装这个deb包:
sudo dpkg -i libmysqlclient16_5.1.73-1ubuntu0.10.04.1_amd64.deb - 如果安装过程中出现依赖错误,执行下面的命令修复:
sudo apt-get install -f
安装完成后再启动程序,应该就能找到libmysqlclient.so.16了。
最后提醒一句:以后在Ubuntu上尽量用apt或者dpkg来管理软件,别再混用rpm包啦,两种包管理系统不兼容,只会徒增麻烦。
内容的提问来源于stack exchange,提问作者Steven Linden
相关产品推荐
相关产品推荐

