You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

执行apt-get update与apt upgrade时因依赖未满足报错,apt --fix-broken install无效求助

执行apt-get update与apt upgrade时因依赖未满足报错,apt --fix-broken install无效求助

看起来你碰到了APT依赖版本不兼容的棘手问题——每次跑apt upgrade都因为依赖对不上报错,连常规的apt --fix-broken install都解决不了,先把你的问题情况理清楚:

我每次执行apt upgrade都会报错,已经尝试过apt --fix-broken install但问题依旧,错误输出如下:

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
You might want to run 'apt --fix-broken install' to correct these.
The following packages have unmet dependencies:
 apt-utils : Depends: apt (= 2.7.14build2) but 2.9.8 is installed
 libapt-pkg6.0t64 : Depends: libgcrypt20 (>= 1.11.0) but 1.10.3-2build1 is installed
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).

这本质是两个包的依赖版本和你当前系统已安装的版本完全不匹配,常规修复命令绕不开这个矛盾,我给你几个实操性强的解决思路:

方案一:手动降级apt到指定依赖版本

因为apt-utils要求apt必须是2.7.14build2,但你现在装了更高的2.9.8,先把apt降级到对应版本:

  • 先通过apt-cache policy apt查看你的软件源里是否有2.7.14build2版本的apt包,如果有,直接用以下命令降级:
    sudo apt install apt=2.7.14build2
    
  • 如果源里找不到这个版本,就手动下载适配你系统架构的apt=2.7.14build2的deb包到本地,然后用dpkg强制安装:
    sudo dpkg -i --force-depends apt_2.7.14build2_*.deb
    
  • 安装完成后,再运行apt --fix-broken install,应该就能自动修复剩下的依赖问题了

方案二:手动升级libgcrypt20到满足要求的版本

针对libapt-pkg6.0t64依赖的libgcrypt20版本不足的问题:

  • 同样先用apt-cache policy libgcrypt20查看源中是否有>=1.11.0的版本,如果有,直接升级:
    sudo apt install libgcrypt20=1.11.0-*
    
  • 要是源里没有高版本,就下载对应架构的libgcrypt20高版本deb包,本地安装:
    sudo dpkg -i libgcrypt20_1.11.0-*_*.deb
    
  • 完成后再执行apt --fix-broken install来收尾

方案三:重置APT状态后重试

如果上面两个方案都没效果,试试重置APT的缓存和包配置状态:

  1. 先重新配置所有未完成的包:
    sudo dpkg --configure -a
    
  2. 清理APT的缓存文件:
    sudo apt clean && sudo apt autoclean
    
  3. 最后再次尝试修复依赖:
    sudo apt --fix-broken install
    

备注:内容来源于stack exchange,提问作者Fikriansyah Ahmadinejad

火山引擎 最新活动