我弄乱了 /usr/lib 中的符号链接和库。我修改了 libmysql* 等库。有人建议重新安装 libmysqlclient-dev 包。libmysqlclient-dev 是否包含 Mysql 库?
我如何强制重新安装 libmysqlclient-dev?
我正在使用 Ubuntu Server 10.04 和最新的 Mysql 5.1.x。我需要使用服务器来托管 Rails 应用程序,并且需要编译 mysql2 gem,但失败了。
更新
我已删除 /usr/lib 下的 libmysql* 文件和 mysql 目录。然后我清除并重新安装了 mysql 服务器、客户端和 libmysqlclient-dev,但我得到:
mysql: error while loading shared libraries: libmysqlclient.so.16: cannot open shared object file: No such file or directory
我需要知道哪个包安装了共享库以及如何修复它。
答案1
用来dpkg -S
找出文件/usr/lib/libmysqlclient.so.16
来自哪个包,我不认为它来自libmysqlclient-dev
,而是来自libmysqlclient
,该dpkg -S
命令是为了验证它的来源......
卸载并重新安装生成的软件包。重新安装后,运行ldconfig
以强制系统重建其中的符号链接结构/usr/lib
。
编辑
刚刚快速安装了 10.04 进行验证。/usr/lib/libmysqlclient.so.16
来自包libmysqlclient16
。所以回到你的问题:不,包中libmysqlclient-dev
没有你要找的库。
卸载:
sudo apt-get purge libmysqlclient16
安装:
sudo apt-get install libmysqlclient16
该包的安装也应该触发的运行ldconfig
。
答案2
这些是用于在 Ubuntu 上使用 Ruby 安装 MySQL 的安装命令。
sudo apt-get install mysql-server mysql-client
sudo apt-get install libmysql-ruby libmysqlclient-dev
sudo gem install mysql
引用自 Ubuntu 社区网站: https://help.ubuntu.com/community/RubyOnRails
答案3
libmysqlclient-dev 库包含通常存储在下的开发文件(标题)/usr/include/
。这里,你可以看到提供的大部分文件都是.h
文件。当你想从源代码构建应用程序时,这样的库很有用。
您可以尝试删除该软件包并重新安装。此方法无效,您可能需要尝试手动修复您所做的操作。
$ sudo apt-get purge libmysqlclient-dev # remove completely with configs
$ sudo apt-get install libmysqlclient-dev