解决Ubuntu在安装某个软件时依赖包的版本过高问题

在安装mysql时:

  1. sudo apt-get install mysql-server

  2. apt-get isntall mysql-client

  3. sudo apt-get install libmysqlclient-dev

第三步时:某个依赖包安装不上

出现:

zlib1g-dev : Depends: zlib1g (= 1:1.2.8.dfsg-2ubuntu4) but 1:1.2.8.dfsg-2ubuntu4.1 is to be installed

E: Unable to correct problems, you have held broken packages.

这个问题查询了好久,最终在这篇博客中找到了解决方法 https://blog.csdn.net/makenothing/article/details/23686141

具体做法是 安装 sudo apt-get install aptitude

解释一下 aptitude 这个词几乎就等价与apt-get,只不过与 apt-get 不同的是,aptitude在处理依赖问题上更佳一些。举例来说,aptitude在删除一个包时,会同时删除本身所依赖的包。这样,系统中不会残留无用的包,整个系统更为干净。并且如果遇到上述情况:

使用 sudo aptitude install 软件名,安装过程中出现上述问题,会给出解决方案,我就是选择了将某个高版本的依赖包降到低版本后,完成安装的。

附录:

 apt-cache search package 搜索包

  apt-cache show package 获取包的相关信息,如说明、大小、版本等

  sudo apt-get install package 安装包

  sudo apt-get install package - - reinstall 重新安装包

  sudo apt-get -f install 修复安装"-f = ——fix-missing"

  sudo apt-get remove package 删除包

  sudo apt-get remove package - - purge 删除包,包括删除配置文件等

  sudo apt-get update 更新源

  sudo apt-get upgrade 更新已安装的包

  sudo apt-get dist-upgrade 升级系统

  sudo apt-get dselect-upgrade 使用 dselect 升级

  apt-cache depends package 了解使用依赖

  apt-cache rdepends package 是查看该包被哪些包依赖

  sudo apt-get build-dep package 安装相关的编译环境

  apt-get source package 下载该包的源代码

  sudo apt-get clean && sudo apt-get autoclean 清理无用的包

  sudo apt-get check 检查是否有损坏的依赖

附录来源:

原文:https://blog.csdn.net/makenothing/article/details/23686141

---------------------