Ubuntu20.04:下载包遇到依赖性问题怎么解决?试试Aptitude!

如是我闻:在我安装NVIDIA显卡驱动的时候,需要下载build-essential,但总是出现依赖性问题非常的刺激

yann0927@yann0927:~$ sudo apt install g++-9 gcc-9
Reading package lists... Done
Building dependency tree

Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help resolve the situation:

The following packages have unmet dependencies:
g++-9 : Depends: gcc-9-base (= 9.3.0-10ubuntu2) but 9.3.0-17ubuntu1~20.04 is to be installed
Depends: libstdc++-9-dev (= 9.3.0-10ubuntu2) but it is not going to be installed
gcc-9 : Depends: cpp-9 (= 9.3.0-10ubuntu2) but 9.3.0-17ubuntu1~20.04 is to be installed
Depends: gcc-9-base (= 9.3.0-10ubuntu2) but 9.3.0-17ubuntu1~20.04 is to be installed
Depends: libgcc-9-dev (= 9.3.0-10ubuntu2) but it is not going to be installed
Recommends: libc6-dev (>= 2.13-0ubuntu6) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

但当我输入

sudo aptitude install build-essential

Aptitude 会自动提供解决依赖问题的方案,包括降级某些包。只需要接受这个方案,Aptitude 会自己开始处理并成功安装所有必要的包,救了我的大命。所以以下是对Aptitude 的介绍,希望能拯救每一个因为包依赖性而受伤的孩子。

介绍

Aptitude 是一个基于文本的界面,用于Debian及其衍生系统(如Ubuntu)上的软件包管理。它提供了一个比 apt-get 更友好的界面,以及一些额外的功能,使得软件包管理变得更加方便。以下是 Aptitude 的一些主要特点:

  1. 高级包管理功能

    • Aptitude 提供了比 apt-get 更多的功能,包括为软件包标记、查找、管理依赖关系等。
  2. 依赖关系解决

    • Aptitude 在处理包依赖关系方面非常强大。当有依赖性冲突时,它会提供多种解决方案供用户选择。
  3. 用户友好的界面

    • 它有一个基于文本的用户界面,用户可以通过键盘命令浏览和管理包。
  4. 日志功能

    • Aptitude 自动记录所有的包活动(如安装、升级、删除),这有助于跟踪系统更改。
  5. 灵活的搜索机制

    • 它支持复杂的搜索查询,使得找到特定的包变得更容易。
  6. 可选的图形界面

    • 虽然 Aptitude 通常在命令行中使用,但它也有一个简单的图形用户界面。
  7. 同时管理多个包

    • Aptitude 允许用户一次性进行多个包的安装、升级或删除操作。

要在Debian或Ubuntu系统中安装 Aptitude,可以使用以下命令:

sudo apt-get install aptitude

然后,你可以通过命令 aptitude 运行它的文本界面,或使用诸如 aptitude searchaptitude install 等命令行参数直接执行特定的操作。Aptitude 的强大之处在于它对包依赖关系的处理以及其友好的用户界面,这使得它在一些用户中非常受欢迎。

拓展阅读

aptitudeapt 都是Debian及其衍生Linux发行版(如Ubuntu)中用于包管理的工具,但它们并不完全相同。虽然它们有一些相似的功能,但在操作方式、用户界面和某些高级功能上有所不同。

  1. APT (Advanced Package Tool):

    • apt 是最常用的包管理工具之一,提供了一系列命令用于处理软件包,例如 apt-getapt-cache
    • 它专注于简洁和易用性,通常被推荐给Linux新手。
    • apt 提供了基本的软件包处理功能,如安装、更新、升级和删除软件包。
    • 示例命令:sudo apt install [package-name]
  2. Aptitude:

    • aptitude 是另一种包管理工具,提供了一个基于文本的用户界面。
    • 它通常被认为在解决复杂的依赖关系和冲突时更加强大。
    • aptitude 也可以通过命令行界面使用,提供了类似 apt 的命令,但在某些情况下处理软件包的方式不同。
    • 示例命令:sudo aptitude install [package-name]

虽然 aptitudeapt 都可以用于安装、更新和移除软件包,但它们在处理依赖性、解决包冲突以及用户界面方面存在差异。aptitude 的基于文本的界面对于那些喜欢细致管理软件包的用户来说很有用,而 apt 则更加简洁直观,适合快速进行软件包管理操作。

非常的OK
以上

  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值