【漂移菌】犀牛派X1 入坑小白教程之 Ubuntu apt upgrade 修复记录

骑驴玩儿漂移 2026-09-17 16:20:05

Ubuntu apt upgrade 修复记录

作者:漂移菌 日期:2026-7-21

环境信息

  • 系统:Ubuntu 22.04.2 LTS (Jammy Jellyfish)
  • 架构:ARM64 (aarch64)
  • 软件源:华为云 Ubuntu Ports 镜像
  • 用户名:aidlux

问题现象

执行 sudo apt upgrade 时失败,模拟升级提示存在未满足的依赖:

kmod : Depends: libkmod2 (= 29-1ubuntu1) but 29-1ubuntu1.1 is installed
E: Unmet dependencies. Try 'apt --fix-broken install'

同时系统有 267 个软件包等待升级,但 kmod 与 libkmod2 版本不一致导致整个升级链断裂。

根因分析

  1. libkmod2 已升级到 29-1ubuntu1.1,但 kmod 仍停留在 29-1ubuntu1。
  2. kmod 的新版本 29-1ubuntu1.1 包含 /etc/modprobe.d/blacklist.conf,但该文件已被第三方包 mod-blacklist 1.0-r0(OpenEmbedded 构建)占用。
  3. 因此 apt --fix-broken install 在覆盖配置文件时触发 dpkg 冲突,导致 kmod 无法完成升级,并阻塞了依赖它的 bluez、gnome-bluetooth、indicator-bluetooth 等包。

修复步骤

1. 更新软件包列表

sudo apt update

输出显示 267 个软件包可升级。

2. 备份冲突的配置文件

sudo cp /etc/modprobe.d/blacklist.conf /etc/modprobe.d/blacklist.conf.bak.$(date +%Y%m%d)

3. 使用强制覆盖方式安装新版 kmod

先下载对应版本:

sudo apt-get download kmod=29-1ubuntu1.1

由于 mod-blacklist 占用了同名文件,使用 dpkg --force-overwrite 让新版 kmod 覆盖:

sudo dpkg -i --force-overwrite kmod_29-1ubuntu1.1_arm64.deb

此时会提示 libkmod2 尚未配置完成,属于正常中间状态。

4. 非交互式修复破损依赖

为避免 dpkg 在配置文件冲突时卡住,使用非交互模式并保留旧配置:

sudo DEBIAN_FRONTEND=noninteractive apt --fix-broken install -y \
  -o Dpkg::Options::="--force-confold"

该命令成功配置了 kmod、bluez、gnome-bluetooth、indicator-bluetooth。

5. 执行完整系统升级

sudo DEBIAN_FRONTEND=noninteractive apt upgrade -y \
  -o Dpkg::Options::="--force-confold"

升级过程顺利,所有可升级包均已安装。

6. 清理无用包

sudo apt autoremove -y

验证结果

sudo dpkg --audit
# 无输出,表示没有破损包

sudo apt --simulate upgrade
# 0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded

仍有 libglapi-mesa 被保留(kept back),原因是 /etc/apt/preferences.d/osfix015_block_reinstall.pref 中对若干 Mesa/X11 相关包做了 -1 优先级固定,这是厂商(Aidlux)自定义镜像的预期行为,不影响日常使用,无需强行升级。

第二部分,就是为了能够更好的提供中文交互的功能,测试大语言模型的中文交互能力,实际上是自己懒得翻译了,哈哈

中文输入法与系统语言设置

1. 安装中文语言包与输入法

sudo apt install -y language-pack-zh-hans language-pack-zh-hans-base \
  fonts-noto-cjk ibus-libpinyin

实际环境中这些包已预装,命令确保它们处于最新状态。

2. 设置系统默认 locale 为中文

sudo update-locale LANG=zh_CN.UTF-8 LANGUAGE=zh_CN:zh

验证 /etc/default/locale:

LANG=zh_CN.UTF-8
LANGUAGE=zh_CN:zh

注销并重新登录后,系统界面将显示为简体中文。

3. 配置中文输入法

  • 将输入框架设为 IBus:
    im-config -n ibus
    
  • 将 GNOME 输入源设为美式键盘 + 智能拼音:
    gsettings set org.gnome.desktop.input-sources sources \
      "[('xkb', 'us'), ('ibus', 'libpinyin')]"
    
  • 设置 GNOME 区域格式:
    gsettings set org.gnome.system.locale region 'zh_CN.UTF-8'
    

按 Super + Space(或点击顶部面板输入法图标)即可在英文与中文拼音输入法之间切换。

注意事项

  1. 修改系统语言后需要重新登录或重启才能完全生效。
  2. libglapi-mesa 被保留是厂商固定策略导致,不要强行使用 dpkg --force 或删除 pinning 文件,否则可能破坏图形/显示驱动。
  3. 若日后再次遇到 dpkg 配置文件冲突,可优先使用 DEBIAN_FRONTEND=noninteractive + --force-confold 方式处理。
...全文
161 回复 打赏 收藏 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
内容概要:本文系统阐述了半桥LLC谐振DCDC变换器的设计与仿真方法,聚焦于其在Simulink环境下的建模、关键参数设计及闭环控制策略的实现。内容深入剖析了LLC谐振变换器的工作原理,包括谐振腔元件(Lr、Cr、Lm)的精确计算与优化方法,详细探讨了实现零电压开通(ZVS)等软开关技术的关键条件,并介绍了变频控制与恒压恒流双闭环控制逻辑的设计思路。通过构建完整的Simulink仿真模型,文章验证了系统在不同负载工况下的动态响应能力、高效率特性和良好的稳态性能,为理论分析提供了强有力的实践支撑。; 适合人群:具备电力电子技术基础理论知识和Simulink软件操作经验的电气工程、自动化及相关专业的本科高年级学生、研究生,以及从事开关电源、新能源变换器等电力电子设备研发的工程师。; 使用场景及目标:①深入理解LLC谐振变换器的核心工作机理与谐振参数的设计准则;②掌握在Simulink中搭建高保真度电力电子变换器仿真模型并实现复杂闭环控制的技术;③为高效率、高功率密度电源产品的研发提供理论指导、设计范例与仿真验证平台。; 阅读建议:建议读者结合文中的理论推导与仿真模型进行同步实践,重点动手调整谐振频率、观察ZVS实现过程,并反复调试PI控制器参数以优化系统的动态与稳态响应,从而深刻领悟LLC变换器的非线性动态特性和先进控制策略的精髓。

7,984

社区成员

发帖
与我相关
我的任务
社区描述
本论坛以AI、IoT、PC 、XR、Auto等核心板块组成,为开发者提供便捷及高效的学习和交流平台。 高通开发者专区主页:https://qualcomm.csdn.net/
物联网人工智能开源 企业社区 北京·东城区
社区管理员
  • csdnsqst0050
  • chipseeker
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧