在Ubuntu的使用中想必大家经常遇见这句话:“E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系”

对于这个问题,网上有很多解决方案,但是大多不靠谱.以往我一般都是手动处理 (当然我们也可以使用aptitude来自动解决安装依赖问题,详细见下文),如果是一个软件的版本问题,直接安装指定版本.比如:

在显示liblapack3 : 依赖: libgfortran3 (>= 4.6) 但是它将不会被安装 E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。的时候,部分情况可以直接使用sudo apt-get -f install libgfortran3>=4.6,来进行解决.

但是如图中所示,这次不行,为什么呢?因为一般而言安装制定版本的软件所对应的问题是软件版本过高的的问题.但是在这里并不是这样,而是因为安装这个软件还有很多的其他依赖这里无法提供.

这个时候就要轮到下面的这种方法了.

那就是使用aptitude来代替apt,aptitude与 apt-get 一样,是 Debian 及其衍生系统中功能极其强大的包管理工具。与 apt-get 不同的是,aptitude在处理依赖问题上更佳一些。举例来说,aptitude在删除一个包时,会同时删除本身所依赖的包。这样,系统中不会残留无用的包,整个系统更为干净。而在安装软件时,它不仅仅可以提供像apt那样的普通功能,还能够提供在安装依赖冲突时的解决方案。

比如我在安装R时发现安装冲突,这个时候我们就可以使用sudo aptitude install r-base-core来解决这个问题。一开始的时候,aptitude也会想apt那样检测到依赖冲突,然后给出一个解决方案。但是不同的地方在于对于解决方案你有三个选择(y/n/q),y就是同意,n不同意,然后会继续给出下一个解决方案。q–>退出,放弃安装。假如一开始它推荐给你不安装的时候,你就可以选择n,然后一般而言第二个解决方案将会自动降级安装依赖的软件(如果是一系列软件版本过高的话),这个时候选择同意基本都可以安装成功。

如图:

不过唯一美中不足的问题在于,这样安装之后的 软件版本会比较低。不过好在确实可以用了。

参考

  1. 在Ubuntu中安装R语言
  2. Ubuntu解决包的依赖问题

Ubuntu下安装依赖的几个解决方案相关推荐

  1. Ubuntu下安装依赖包问题总结

    如下包未满足包依赖关系: libvtk-dev5:依赖于:libfreetype6-dev,但它(libfreetype6-dev)将不会被安装依赖于:libnetcdf-dev,但它(libnetc ...

  2. linux texmaker编译,Ubuntu下安装Texmaker的问题与解决方案

    在Ubuntu下安装好了texlive后,为了开发方便,希望再继续安装一个编辑器,用于方便的编辑latex文档. 而texmaker就是一个很好的工具. 问题1, 被安装了早期版本的latex 不管你 ...

  3. ubuntu 下安装 VIM 依赖vim-common错误

    ubuntu 下安装 VIM 依赖vim-common错误 sudo apt-get remove vim-common   先把上面的错误依赖删除 sudo apt-get install vim  ...

  4. Ubuntu下安装Wine可能导致假死问题解决方案

    Ubuntu下安装Wine可能导致假死问题解决方案 出现问题 在使用Ubuntu使用apt-get install wine时,导致下载处于假死状态,不论将dpkg命令杀死,还是按照提示sudo ap ...

  5. Ubuntu下安装mysql与mysql workbench

    其他相关链接 Ubuntu 安装jdk:[链接] Ubuntu安装eclipse:[链接] Ubuntu下安装mysql与mysql workbench:[链接] Ubuntu配置tomcat9:[链 ...

  6. Ubuntu下安装DEB包时出现错误的解救方法

    在Ubuntu下安装flashplayer的浏览器插件,采用dpkg -i的方法来安装,可能是因为文件依赖有问题,没有安装成功.出现如下错误: E: The package adobe-flashpl ...

  7. Ubuntu:Ubuntu下安装Anaconda和Tensorflow的简介、入门、安装流程之详细攻略

    Ubuntu:Ubuntu下安装Anaconda和Tensorflow的简介.入门.安装流程之详细攻略 目录 安装流程 1.安装nvidia显卡驱动 2.安装cuda8 3.安装Cudnn 4.Ana ...

  8. Docker最全教程之Ubuntu下安装Docker(十五)

    前言 Ubuntu是一个以桌面应用为主的开源GNU/Linux操作系统,应用很广.本篇主要讲述Ubuntu下使用SSH远程登录并安装Docker,并且提供了Docker安装的两种方式,希望对大家有所帮 ...

  9. Ubuntu下安装Oracle11g(图文教程)

    由于课程需要,要在Ubuntu下安装一个Oracle,之前都没有装过,所以想通过这篇博文记录一下 1.下载Oracle 11g 下载地址:http://www.oracle.com/technetwo ...

最新文章

  1. Spring Boot注册Servlet三大组件(Servlet, Filter, Listener)
  2. JFinal 1.1.4 发布,JAVA极速WEB+ORM框架
  3. Leetcode--226. 翻转二叉树
  4. ruby 查看csv文件_如何使用CSV和Ruby构建终端游戏
  5. leetcode 303 python(动态规划)
  6. 日志分析平台-ELK
  7. StyleGAN图像风格转换相关经典论文、项目、数据集等资源整理分享
  8. promise兼容性问题
  9. malloc函数的用法
  10. 告别乐盲,AI 通过歌词生成旋律【智能快讯】
  11. ES6模板字符串(循环、函数)
  12. ios 上h5点击无效_ios h5 点击事件失效及点击延迟
  13. cacti监控部署——网络流量监控
  14. harmonyos2.0手机,华为HarmonyOS 2.0将于6月2日发布,华为手机可一键升级
  15. 成功的10000小时定律
  16. Verilog语言快速入门(一)
  17. 渲染字幕libass
  18. mysql查询的金额保留两位小数_mysql查询结果单位换算后保留两位小数
  19. POI导入和导出Excel
  20. caret包介绍学习之train函数介绍

热门文章

  1. 优化信息流很麻烦?三招教你轻松搞定
  2. 静默安装oracle
  3. mysql基本操作二
  4. npm与Yarn命令对比
  5. IDEA创建方法时快速添加注释
  6. Python 的运算符
  7. 面试官给我挖坑:rm删除文件之后,空间就被释放了吗?
  8. 震惊!原来这才是Kafka的“真面目”!
  9. Python for else 的使用(银行账号的登录)
  10. websocket中发生数据丢失_tcp协议;websocket协议;同源策略和跨域