首页 > 其他分享 >包管理工具aptitude确实比apt更好用

包管理工具aptitude确实比apt更好用

时间:2023-05-25 15:11:32浏览次数:32  
标签:... amd64 管理工具 dev up libdrm apt aptitude packages

最近在Ubuntu 22.04上编译开源项目biyi遇到一些问题,让我又重新认识到aptitude对比apt的优越性。

biyi,一个优秀的便捷翻译和词典应用,支持划词/截图翻译,适用于 Windows、macOS 和 Linux。

编译过程中,需要安装一些依赖,比如:libastreamer-plugins-base1.0-dev,习惯性用apt安装:

spt@spt-pc:~/biyidev/biyi/apps/biyi_app$ sudo apt install libgstreamer-plugins-base1.0-dev
Reading package lists... Done
Building dependency tree... Done
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 to resolve the situation:

The following packages have unmet dependencies:
libegl-mesa0 : Depends: libgbm1 (= 22.0.1-1ubuntu2.1) but 22.2.5-0ubuntu0.1~22.04.1 is to be installed
E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.

apt工具提示很普通,给出了安装失败的原因,在于依赖libgbm1的版本太新。

如果换成aptitude再试试呢?

spt@spt-pc:~/biyidev/biyi/apps/biyi_app$ sudo aptitude install libgstreamer-plugins-base1.0-dev 
The following NEW packages will be installed:
  libdrm-dev{a} libgbm-dev{a} libgstreamer-plugins-base1.0-dev libgudev-1.0-dev{a} liborc-0.4-dev{a} 
  liborc-0.4-dev-bin{a} libpciaccess-dev{a} libudev-dev{a} libx11-xcb-dev{a} 
The following packages will be upgraded:
  libdrm-amdgpu1 libdrm-common libdrm-intel1 libdrm-nouveau2 libdrm-radeon1 libdrm2 libgbm1 
7 packages upgraded, 9 newly installed, 0 to remove and 215 not upgraded.
Need to get 1,461 kB of archives. After unpacking 10.7 MB will be used.
The following packages have unmet dependencies:
 libegl-mesa0 : Depends: libgbm1 (= 22.0.1-1ubuntu2.1) but 22.2.5-0ubuntu0.1~22.04.1 is to be installed
The following actions will resolve these dependencies:

     Install the following packages:                                                         
1)     libllvm15 [1:15.0.6-3~ubuntu0.22.04.2 (jammy-updates)]                                

     Upgrade the following packages:                                                         
2)     libegl-mesa0 [22.0.1-1ubuntu2.1 (now) -> 22.2.5-0ubuntu0.1~22.04.1 (jammy-updates)]   
3)     libgl1-mesa-dri [22.0.1-1ubuntu2.1 (now) -> 22.2.5-0ubuntu0.1~22.04.1 (jammy-updates)]
4)     libglapi-mesa [22.0.1-1ubuntu2.1 (now) -> 22.2.5-0ubuntu0.1~22.04.1 (jammy-updates)]  
5)     libglx-mesa0 [22.0.1-1ubuntu2.1 (now) -> 22.2.5-0ubuntu0.1~22.04.1 (jammy-updates)]   


Accept this solution? [Y/n/q/?] 

aptitude不仅仅指出失败的原因,还给出了解决方案。

如果你不同意这个解决方案,输入n,还会接着给你另外的解决方案:

Accept this solution? [Y/n/q/?] n
The following actions will resolve these dependencies:

     Keep the following packages at their current version:
1)     libgbm-dev [Not Installed]                         
2)     libgbm1 [22.0.1-1ubuntu2.1 (now)]                  
3)     libgstreamer-plugins-base1.0-dev [Not Installed]   

当然针对这个问题,我认为aptitude默认给出的解决方案是可行的。

Accept this solution? [Y/n/q/?] Y
The following NEW packages will be installed:
  libdrm-dev{a} libgbm-dev{a} libgstreamer-plugins-base1.0-dev libgudev-1.0-dev{a} libllvm15{a} liborc-0.4-dev{a} 
  liborc-0.4-dev-bin{a} libpciaccess-dev{a} libudev-dev{a} libx11-xcb-dev{a} 
The following packages will be upgraded:
  libdrm-amdgpu1 libdrm-common libdrm-intel1 libdrm-nouveau2 libdrm-radeon1 libdrm2 libegl-mesa0 libgbm1 libgl1-mesa-dri 
  libglapi-mesa libglx-mesa0 
11 packages upgraded, 10 newly installed, 0 to remove and 211 not upgraded.
Need to get 34.7 MB of archives. After unpacking 128 MB will be used.
Do you want to continue? [Y/n/?] Y
Get: 1 http://mirrors.yun-idc.com/ubuntu jammy-updates/main amd64 libdrm-common all 2.4.113-2~ubuntu0.22.04.1 [5,450 B]
Get: 2 http://mirrors.yun-idc.com/ubuntu jammy-updates/main amd64 libdrm2 amd64 2.4.113-2~ubuntu0.22.04.1 [38.1 kB]
......................
Setting up libdrm2:amd64 (2.4.113-2~ubuntu0.22.04.1) ...
Setting up libdrm-amdgpu1:amd64 (2.4.113-2~ubuntu0.22.04.1) ...
Setting up libdrm-nouveau2:amd64 (2.4.113-2~ubuntu0.22.04.1) ...
Setting up libgbm1:amd64 (22.2.5-0ubuntu0.1~22.04.1) ...
Setting up libdrm-radeon1:amd64 (2.4.113-2~ubuntu0.22.04.1) ...
Setting up libdrm-intel1:amd64 (2.4.113-2~ubuntu0.22.04.1) ...
Setting up libgl1-mesa-dri:amd64 (22.2.5-0ubuntu0.1~22.04.1) ...
Setting up libgbm-dev:amd64 (22.2.5-0ubuntu0.1~22.04.1) ...
Setting up libegl-mesa0:amd64 (22.2.5-0ubuntu0.1~22.04.1) ...
Setting up libdrm-dev:amd64 (2.4.113-2~ubuntu0.22.04.1) ...
Setting up libglx-mesa0:amd64 (22.2.5-0ubuntu0.1~22.04.1) ...
Setting up libgstreamer-plugins-base1.0-dev:amd64 (1.20.1-1) ...
Processing triggers for man-db (2.10.2-1) ...
Processing triggers for libc-bin (2.35-0ubuntu3) ...
                                         
Current status: 211 (-11) upgradable.

于是就完整解决了安装问题。接下来编译也顺利通过了。

 

标签:...,amd64,管理工具,dev,up,libdrm,apt,aptitude,packages
From: https://www.cnblogs.com/zzugyl/p/17431332.html

相关文章

  • 源代码管理工具
    什么是源代码管理工具?源代码管理(SCM)工具是一种软件应用程序,它提供了一个集中位置来存储、管理和版本控制源代码文件和其他软件开发工件。当多个开发人员对同一文件进行更改时,它允许开发人员团队跟踪更改、协作处理功能并解决冲突,从而帮助开发人员团队在代码库上协同工作。使......
  • 关于源代码管理工具的介绍与实际使用技巧
      当谈到主流的源代码管理工具时,GitHub和AzureDevOps(之前称为TFS,即TeamFoundationServer)是两个备受推崇的选择。我将重点介绍GitHub,并说明如何将其与团队项目结合起来。  GitHub是一个在线软件源代码托管服务平台,使用Git作为版本控制软件,由开发者ChrisWanstrath、P.J.H......
  • 源代码管理工具博客
    GitHub的原理和优势什么是GitHubGitHub是一个基于Git的分布式版本控制系统,它可以让开发者在本地和云端进行代码的管理和协作。GitHub是目前最流行的代码托管平台,拥有超过一亿的开发人员和3.3亿的资料库。GitHub的原理GitHub的原理是基于Git的分布式版本控制系统,......
  • debian系统apt安装的设置
    在Dockerfile中,`ENVDEBIAN_FRONTENDnoninteractive`是用于设置环境变量的指令。具体解释如下:1.**`ENV`指令:**`ENV`指令用于设置环境变量。环境变量是在容器中可用的键值对,可以在容器的运行时环境中使用。`ENV`指令的语法如下:```dockerfileENV<key>=<value>`......
  • apifox接口测试管理工具快速入门
    更多内容,欢迎来到我的个人博客==http://blog.devilwst.top==安装apifox官网apifox文档使用初识创建并使用项目可以创建分组,创建子分组相知:设置前缀及公共请求头在使用接口前先创建环境可以先设置前缀url设置公共请求头甚至可以设置cookie等,这样每一个使用该环境的接口请求时都......
  • 源代码管理工具
    源代码管理工具1、Github介绍Github是一个基于Git的代码托管平台,它提供了一个在线的代码仓库,可以让开发者们在上面存储、管理和分享代码。1.1功能介绍Github是一个基于Git的代码托管平台,它使用Git作为版本控制系统,可以让开发者们对代码进行版本控制、分支管理和合并等操作。G......
  • Visual Source Safe---源代码管理工具
    一、VisualSourceSafe(简称VSS)       VSS是微软的产品,是配置管理的一种很好的入门级的工具。VSS最初的名字叫SourceSafe,是一家小公司的产品,92年曾经获了最佳小型管理工具奖,然后立即被微软收购。但是微软收购的只是sourcesafe的Windows版本,在美国还有另外两家公司......
  • 源代码管理工具GitHub介绍
    GitHub 是一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行托管,故名GitHub。GitHub于2008年4月10日正式上线,除了Git代码仓库托管及基本的Web管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码......
  • 02-Node.js的包管理工具
    00.代码共享方案模块化的编程思想,支持将代码划分成一个个小的、独立的结构。我们可以通过模块化的方式来封装自己的代码,将之封装成一个工具;这个工具我们可以让同事通过导入的方式来使用,甚至也可以分享给世界各地的程序员来使用;假如,我们要将某个工具分享给世界上所有的程序员......
  • 源代码管理工具
    软件开发与创新设计的作业介绍主流源代码管理工具(推荐Github或TFS)。重点介绍其中一种即可。 Github1.1介绍:GitHub是一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行托管,故名GitHub。GitHub于2008年4月10日正式上线,除了Git代码......