执行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的缓存和包配置状态:
- 先重新配置所有未完成的包:
sudo dpkg --configure -a - 清理APT的缓存文件:
sudo apt clean && sudo apt autoclean - 最后再次尝试修复依赖:
sudo apt --fix-broken install
备注:内容来源于stack exchange,提问作者Fikriansyah Ahmadinejad




