美文网首页
Ubuntu解决依赖关系问题的正确姿势

Ubuntu解决依赖关系问题的正确姿势

作者: 可莉超可爱 | 来源:发表于2020-10-28 11:15 被阅读0次

在 Unbuntu 系统上安装各种软件时,经常会遇到各种各样的依赖问题而导致安装无法进行。我作为一枚 Linux 小白正深受其苦,经常越弄越乱导致不得不重装系统(哭)。通常来说,这类问题可以通过 更换下载源apt-get updateapt-get upgrade 来解决。但更经常会遇到连这三幻神(雾)都没法解决问题的时候。这篇文章就来分享一下安装 Deb 包遭遇依赖问题时到底应该怎么做~

Deb 包安装的正确姿势

从网上下载 .deb 安装包后,我们可以进入到 .deb 包的下载目录,使用 dpkg 命令进行安装。

$> sudo dpkg -i <package.deb>
  • 以下是 dpkg 的一些常用指令。
$> sudo dpkg -i <package.deb>    #安装包
$> sudo dpkg -r <package>       #删除包
$> sudo dpkg -P <package>       #彻底删除包(包括配置文件)
$> dpkg -l                       #列出当前已安装的包

如果命令执行成功,那就万事大吉了。到此为止软件就安装好了,当然也不用继续看下面的内容了。

但是使用 dpkg 安装时经常会报错,提示缺少依赖,导致安装终止。这时我们可以使用 apt-get 指令修复依赖问题,它会自动安装缺少的软件包。

$> sudo apt-get -f install

执行成功后,apt-get 就已经为我们安装好了要安装的 .deb 包,不需要重新执行 dpkg 命令了。

  • 如果系统的 apt 版本在1.1以上,可以直接使用 apt 进行安装 .deb 包,而不需要 dpkg。它可以自动为我们安装需要的依赖。具体可以查看 apt1.1 发布说明
$> apt -v
apt 1.8.2 (amd64)
$> sudo apt install ./<package.deb>

如果使用 apt 不能修复依赖问题,反而自动卸载了未安装完成的 .deb 包;或者使用 apt install 安装 .deb 包时提示类似以下内容。

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

导致这个错误的通常原因是,系统中已经安装过被依赖的包的高版本。例如在我安装 vscode时,需要依赖 libpython3-stdlib 3.6.5;但是之前在安装其它软件时,系统中已经安装了 libpython3-stdlib 3.7.3,因此需要对包的版本进行降级。而 apt-get -f install 并不能胜任这个工作。
最简单的方法是用 aptitude 代替 apt-getaptitudeapt-get 一样,是 Debian 及其衍生系统中功能极其强大的包管理工具。首先下载 aptitude

$> sudo apt-get install aptitude
  • 如果下载 aptitude 时也发生了依赖关系错误而导致无法下载,那你就自求多福吧。。。(不想手动调整依赖关系的话,就只能重装系统了,痛苦)

下载好 aptitude 后,执行以下命令修复依赖关系。(当然也是要在 dpkg 执行之后)

$> sudo aptitude -f install

这时 aptitude 会对依赖关系进行智能处理。如果方案中仍然存在未解决的依赖,提示你删除 .deb 软件包。

删除 下列软件包
1)    vs-code [1:1.0.0.66 (now)]

是否接受该方案? [Y/n/q/?]

这时需要输入 n,让 aptitude 重新计算可行方案,它会对已存在的包进行删除、降级等操作。

总的来说,aptitude 在解决依赖关系问题上,比 apt 智能很多。因此,在遇到复杂的依赖问题的时候,都可以优先考虑使用 aptitude 来解决。网上有很多 aptitude 的使用教程。关于 aptitude 的详细内容可以查阅官方的 aptitude 使用手册

相关文章

  • Ubuntu解决依赖关系问题的正确姿势

    在 Unbuntu 系统上安装各种软件时,经常会遇到各种各样的依赖问题而导致安装无法进行。我作为一枚 Linux ...

  • Ubuntu缺少依赖解决方案

    ubuntu安装程序缺少包依赖关系问题 在ubuntu环境下安装某些程序会提示缺少依赖包, 共3种: 1 ) 先安...

  • ButterKnife 8.5.1 >>> N

    原因: 没有看清楚添加依赖的正确姿势!!! 解决: 1、如果该 module 仅作为 app 使用:depende...

  • Ubuntu解决包依赖关系 ZT

    问题: apt-get install libprotobuf-dev 下列软件包有未满足的依赖关系:libpro...

  • 解决问题的“正确姿势”

    中医讲通则不痛,通则不痛,身体所有症状都是因为身体微循环不畅通通造成的,微循环(血液循环)是微动脉和微静脉之间的通...

  • 解决问题的正确姿势

    一/ 面对问题 被他人(特别是不信任的人)指出问题时,人的第一反应往往不是思考这些问题是否存在,如何改进,而是急于...

  • Ubuntu安装搜狗输入法

    Ubuntu18.04下安装搜狗输入法的正确姿势 - nuoyanli的博客 - CSDN博客 Ubuntu 17...

  • 执行Hadoop命令出现Error: JAVA_HOME is

    网上大部分解决办法是: 燃鹅,这并不是解决该问题的正确姿势。正确的解决方式为:将jdk路径正确的加入到/etc/p...

  • ubuntu解决依赖未安装的问题

    今天在使用 命令安装ccache时报出了一个错误: 刚开始时没有想到是因为内核的版本过多的原因,并且使用它的提示 ...

  • ubuntu apt-file解决依赖关系

    在安装的过程中,难免会出现各种文件缺失,有事缺失文件已经被其他文件代替,这是我们就需要找到现在要安装的包到底是什么...

网友评论

      本文标题:Ubuntu解决依赖关系问题的正确姿势

      本文链接:https://www.haomeiwen.com/subject/zquqvktx.html