You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

update-notifier-common配置失败且因依赖无法卸载的安全解决方法求助

update-notifier-common配置失败且因依赖无法卸载的安全解决方法求助

兄弟,我遇到过几乎一模一样的坑!先别着急卸载——你看那堆反向依赖,真卸载了搞不好Ubuntu Server的核心组件都会出问题。咱们先搞清楚根源:

从报错里的AttributeError: module 'collections' has no attribute 'Mapping'就能看出来,这是Python版本兼容性问题:在Python 3.10及以后的版本中,collections.Mapping这个类被移到了collections.abc.Mapping下面,但系统里的/usr/lib/python3/dist-packages/Debian/deb822.py还在沿用旧的引用方式,导致update-notifier-common的后置安装脚本直接崩了,进而卡住了包配置流程。

给你两个安全的解决思路,按顺序试:

方法一:临时修复Python文件的兼容性问题(最直接)

这个方法不用动任何包,只修改出问题的Python模块代码:

  1. 打开那个出问题的文件:
    sudo nano /usr/lib/python3/dist-packages/Debian/deb822.py
    
  2. 找到第78行左右的这段代码:
    class TagSectionWrapper(collections.Mapping):
    
    把它改成:
    class TagSectionWrapper(collections.abc.Mapping):
    
    或者更稳妥的,在文件开头的导入部分(大概第10行左右)添加兼容代码:
    # 兼容Python3.10+的collections.Mapping变动
    try:
        from collections.abc import Mapping
    except ImportError:
        from collections import Mapping
    
  3. 按Ctrl+O保存,Ctrl+X退出编辑器。
  4. 重新配置所有未完成的包:
    sudo dpkg --configure -a
    
    这时候update-notifier-common应该能顺利完成配置了。

方法二:检查系统默认Python版本(如果方法一没解决)

看你加了deadsnakes的PPA,大概率是把高版本Python(比如3.10+)设成了系统默认的python3,而Ubuntu 18.04原生的Python3.6才是适配系统脚本的版本:

  1. 先看当前默认Python3版本:
    python3 --version
    
  2. 如果显示的是3.10+,用原生Python3.6手动跑一遍出问题的脚本:
    sudo python3.6 /usr/lib/update-notifier/package-data-downloader
    
  3. 再重新配置包:
    sudo dpkg --configure -a
    
    要是之后不想被高版本Python干扰,还可以用update-alternatives把Python3切回原生版本。

最后提醒

千万别硬删update-notifier-common!你列的反向依赖里有ubuntu-server这种核心组件,强制卸载会把系统搞崩的。先从Python兼容性入手,这才是问题的本质~

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 16:02:35