红联Linux门户
Linux帮助

libmysqlcppconn-dev:依赖:libboost-dev但是它将不会被安装一个

发布时间:2015-09-11 15:19:21来源:linux网站作者:Code_My_Life

我电脑是ubuntu14.04,直接apt-get 安装的boost1.55。在安装 libmysqlcppconn-dev 这个包的时候提示出了问题

下列软件包有未满足的依赖关系: 
libmysqlcppconn-dev : 依赖: libboost-dev 但是它将不会被安装 

然后我又

sudo apt-get install libboost-dev 

然后又提示

下列软件包有未满足的依赖关系: 
libboost-dev : 依赖: libboost1.54-dev 但是它将不会被安装 
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。 


怎么办?

sudo apt-cache search libmysql 
 
libmysqlclient-dev - MySQL database development files 
libmysqlclient18 - MySQL database client library 
libmysqlcppconn-dev - MySQL Connector for C++ (development files) 
libmysqlcppconn7 - MySQL Connector for C++ (library) 
libmysqld-dev - MySQL embedded database development files 
libmariadbclient-dev - MariaDB database development files 
libmariadbd-dev - MariaDB embedded database development files 
libmysql++-dev - MySQL C++ library bindings (development) 
libmysql++-doc - MySQL C++ library bindings (documentation and examples) 
libmysql++3 - MySQL C++ library bindings (runtime) 
libmysql-cil-dev - MySQL database connector for CLI 
libmysql-diff-perl - module for comparing the table structure of two MySQL databases 
libmysql-java - Java database (JDBC) driver for MySQL 
libmysql-ocaml - OCaml bindings for MySql (runtime package) 
libmysql-ocaml-dev - OCaml bindings for MySql (development package) 
libmysql6.4-cil - MySQL database connector for CLI 
libmysqld-pic - PIC version of MySQL embedded server development files 


然后安装了libmysqlcppconn7。再执行如下:

apt-get source libmysqlcppconn7 
正在读取软件包列表... 完成 
正在分析软件包的依赖关系树... 0% 
正在分析软件包的依赖关系树
正在读取状态信息... 完成
选择 mysql-connector-c++ 作为源代码包而非 libmysqlcppconn7 
需要下载 505 kB 的源代码包。 
获取:1 http://mirrors.aliyun.com/ubuntu/ trusty/main mysql-connector-c++ 1.1.3-5 (dsc) [1,932 B] 
获取:2 http://mirrors.aliyun.com/ubuntu/ trusty/main mysql-connector-c++ 1.1.3-5 (tar) [496 kB] 
获取:3 http://mirrors.aliyun.com/ubuntu/ trusty/main mysql-connector-c++ 1.1.3-5 (diff) [6,642 B] 
下载 505 kB,耗时 0秒 (729 kB/s)
gpgv: 于 2013年09月01日 星期日 19时20分40秒 CST 创建的签名,使用 RSA,钥匙号 D03E3E70 
gpgv: 无法检查签名:找不到公钥 
dpkg-source: 警告: 对 ./mysql-connector-c++_1.1.3-5.dsc 校验签名失败 
dpkg-source: info: extracting mysql-connector-c++ in mysql-connector-c++-1.1.3 
dpkg-source: info: unpacking mysql-connector-c++_1.1.3.orig.tar.gz 
dpkg-source: info: unpacking mysql-connector-c++_1.1.3-5.debian.tar.gz 
dpkg-source: info: applying libmysqlclient_SONAME.diff 
dpkg-source: info: applying disable_tests.diff 
dpkg-source: info: applying attribute_visibility_default_for_exceptions.diff 


下载下来源码以后,进入这个解压目录,其中有两个目录cppconn driver,直接把cppconn复制到/usr/local/include

然后进入driver目录,把其中的.h文件都提制到/usr/local/include目录下。然后编译的时候又提示没有config.h文件,又从同事那里把config.h文件复制到/usr/local/include目录下,然后编译的时候又提示说找不到llibmysqlcppconn,可是明明有这个文件的啊。没办法,又从同事那里直接把libmysqlcppconn-static.a复制到/usr/local/lib目录下,编译就没有问题了。

我看了一下其它人说的问题,其实libboost-dev是一个虚拟目录,应该指向一个libboost,但是为什么安装了boost1.55后没有这个,我就不清楚了。可能自己新建一个虚拟目录指定libboost1.55,也能解决问题。有时间的时候再去解决这个问题吧。