Axi's Blog

Back

ArchLinux 日志之 linux-firmware-nvidia 文件冲突Blur image

这是我在一次 yay -Syu 升级中遇到的棘手问题,涉及 linux-firmware 拆包带来的文件冲突。最后成功解决,记录过程。

情况说明#

我运行:

yay -Syu
bash

系统提示有大量核心组件更新,包括:

  • linux
  • linux-firmware
  • nvidia
  • 以及一些 AUR 包如 google-chromelinuxqqrustdesk-bin

一切正常,直到执行安装时出现错误:

linux-firmware-nvidia: 文件系统中已存在 /usr/lib/firmware/nvidia/ad103
linux-firmware-nvidia: 文件系统中已存在 /usr/lib/firmware/nvidia/ad104
linux-firmware-nvidia: 文件系统中已存在 /usr/lib/firmware/nvidia/ad105
linux-firmware-nvidia: 文件系统中已存在 /usr/lib/firmware/nvidia/ad106
...
plaintext

更新终止。尝试使用 --overwrite 参数也失败:

sudo pacman -Syu --overwrite='/usr/lib/firmware/nvidia/*'
bash

依旧报错。

问题分析#

用 pacman 查询文件归属:

pacman -Qo /usr/lib/firmware/nvidia/ad103
bash

输出:

/usr/lib/firmware/nvidia/ad103 属于软件包 linux-firmware
plaintext

说明当前系统中的 NVIDIA 固件文件属于旧的 linux-firmware 包,而现在新的包 linux-firmware-nvidia 也试图写入这些路径。

这是 Arch Linux 在 2025 年的一次“固件包拆分”导致的文件所有权迁移问题。

多次尝试失败#

我尝试了各种常规方式,包括:

  • --overwrite
  • 单独安装新包
  • 重跑 yay -Syu

都以类似冲突报错结束。

解决方案#

最终使用以下方案成功解决:

1. 卸载旧包(跳过依赖检查)#

sudo pacman -Rdd linux-firmware
bash

2. 安装新包#

sudo pacman -S linux-firmware linux-firmware-nvidia
bash

3. 再次系统更新#

yay -Syu
bash

验证#

确认迁移成功:

pacman -Qo /usr/lib/firmware/nvidia/ad103
bash

输出变为:

/usr/lib/firmware/nvidia/ad103 属于软件包 linux-firmware-nvidia
plaintext

之后 reboot,没有出现任何问题。

ArchLinux 日志之 linux-firmware-nvidia 文件冲突
https://axi404.top/blog/archbug1
Author 阿汐
Published at June 26, 2025
Comment seems to stuck. Try to refresh?✨