E: Unable to correct problems, you have held broken packages 解决方法

问题描述

用sudo apt-get安装包的时候发现报错:

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

网上都说用sudo apt-get install aptitude 安装aptitude解决依赖问题
结果发现安装aptitude也报错:

The following packages have unmet dependencies:
aptitude : Depends: libapt-pkg5.0 (>= 1.1) but it is not going to be installed
Recommends: libparse-debianchangelog-perl but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

直接给我整蒙了,这是进入死循环了?

问题原因

最后发现是之前更换apt源的时候,搞错了ubuntu版本(之前居然从来没注意过)

换源地址里是有对应的ubuntu版本的,比如清华源:

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse

中间这个bionic是ubuntu 18.04的代号,而我的是ubuntu 20.04,代号是focal,用这个源是不行的。

解决方案

检查版本

所以在换源之前要先获取自己的ubuntu系统版本:

lsb_release -a

输出:

No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.6 LTS
Release:        20.04
Codename:       focal

得知自己的版本是20.04,代号是focal

复制源

然后换源,这里以换清华源为例:
进入清华源的网站
https://mirror.tuna.tsinghua.edu.cn/help/ubuntu/

一定要在下图红色这里选择
对应的 对应的 对应的(重要的事情说三遍)
ubuntu版本,就可以获得对应的ubuntu源地址

在这里插入图片描述

换源

之后就可以换源了,先备份原本的源:

cp /etc/apt/sources.list /etc/apt/sources.list.old

然后编辑源,将原先的源删除,将清华源输入进去:

vim /etc/apt/sources.list

更新apt-get

# 更新源
sudo apt-get update 
# 更新仓库信息    
sudo apt-get upgrade 

再运行

sudo apt-get install aptitude

没问题了

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  aptitude-common libboost-iostreams1.71.0 libcgi-fast-perl libcgi-pm-perl libclass-accessor-perl libcwidget4 libencode-locale-perl libfcgi-perl libhtml-parser-perl
  libhtml-tagset-perl libhttp-date-perl libhttp-message-perl libio-html-perl libio-string-perl liblocale-gettext-perl liblwp-mediatypes-perl libparse-debianchangelog-perl
  libsigc++-2.0-0v5 libsub-name-perl libtimedate-perl liburi-perl libxapian30
Suggested packages:
  aptitude-doc-en | aptitude-doc apt-xapian-index debtags tasksel libcwidget-dev libdata-dump-perl libhtml-template-perl libxml-simple-perl libwww-perl xapian-tools
The following NEW packages will be installed:
  aptitude aptitude-common libboost-iostreams1.71.0 libcgi-fast-perl libcgi-pm-perl libclass-accessor-perl libcwidget4 libencode-locale-perl libfcgi-perl libhtml-parser-perl
  libhtml-tagset-perl libhttp-date-perl libhttp-message-perl libio-html-perl libio-string-perl liblocale-gettext-perl liblwp-mediatypes-perl libparse-debianchangelog-perl
  libsigc++-2.0-0v5 libsub-name-perl libtimedate-perl liburi-perl libxapian30
0 upgraded, 23 newly installed, 0 to remove and 0 not upgraded.
Need to get 4,933 kB of archives.
After this operation, 23.2 MB of additional disk space will be used.
Do you want to continue? [Y/n]

试试安装包

sudo apt-get install freeglut3-dev

同样顺利安装:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  freeglut3 libdrm-amdgpu1 libdrm-intel1 libdrm-nouveau2 libdrm-radeon1 libegl-dev libegl-mesa0 libegl1 libgbm1 libgl-dev libgl1 libgl1-mesa-dev libgl1-mesa-dri libgl1-mesa-glx
  libglapi-mesa libgles-dev libgles1 libgles2 libglu1-mesa libglu1-mesa-dev libglvnd-dev libglx-dev libglx-mesa0 libglx0 libllvm12 libopengl-dev libopengl0 libpciaccess0
  libsensors-config libsensors5 libvulkan1 libwayland-client0 libwayland-server0 libx11-xcb1 libxcb-dri2-0 libxcb-dri3-0 libxcb-glx0 libxcb-present0 libxcb-randr0 libxcb-sync1
  libxcb-xfixes0 libxshmfence1 libxt-dev libxt6 libxxf86vm1 mesa-vulkan-drivers
Suggested packages:
  pciutils lm-sensors libxt-doc
The following NEW packages will be installed:
  freeglut3 freeglut3-dev libdrm-amdgpu1 libdrm-intel1 libdrm-nouveau2 libdrm-radeon1 libegl-dev libegl-mesa0 libegl1 libgbm1 libgl-dev libgl1 libgl1-mesa-dev libgl1-mesa-dri
  libgl1-mesa-glx libglapi-mesa libgles-dev libgles1 libgles2 libglu1-mesa libglu1-mesa-dev libglvnd-dev libglx-dev libglx-mesa0 libglx0 libllvm12 libopengl-dev libopengl0
  libpciaccess0 libsensors-config libsensors5 libvulkan1 libwayland-client0 libwayland-server0 libx11-xcb1 libxcb-dri2-0 libxcb-dri3-0 libxcb-glx0 libxcb-present0 libxcb-randr0
  libxcb-sync1 libxcb-xfixes0 libxshmfence1 libxt-dev libxt6 libxxf86vm1 mesa-vulkan-drivers
0 upgraded, 47 newly installed, 0 to remove and 0 not upgraded.
Need to get 37.8 MB of archives.
After this operation, 532 MB of additional disk space will be used.
Do you want to continue? [Y/n]

问题解决

后记

折腾ubuntu环境也五六年了,从自己小笔记本的虚拟机、双系统到云服务器,断断续续配过的软件/算法环境没有五十个也至少有三十个,之前都是网上随便搜个清华源直接换上去,居然都蒙混过关了。。。所以一直没有注意到这个问题,说出去怕不是要被人笑话哈哈哈哈

现在知道了,apt-get源是有对应系统版本的,在成为一个合格的新手的道路上又前进了一步。

感叹自己在细节上关注的还是不够,每次写的代码就像鸽子转着脖子直升飞天了也就不管了。以后还是要多多关注细节,知其然知其所以然。

  • 11
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值