ubuntu22.04桌面安装GL库失败

错误描述

bash 复制代码
root@test-machine:~# sudo apt install mesa-common-dev
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成
有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是
因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件
包尚未被创建或是它们已被从新到(Incoming)目录移出。
下列信息可能会对解决问题有所帮助:

下列软件包有未满足的依赖关系:
 libdrm-dev : 依赖: libdrm2 (= 2.4.110-1ubuntu1) 但是 2.4.113-2~ubuntu0.22.04.1 正要被安装
              依赖: libdrm-intel1 (= 2.4.110-1ubuntu1) 但是 2.4.113-2~ubuntu0.22.04.1 正要被安装
              依赖: libdrm-radeon1 (= 2.4.110-1ubuntu1) 但是 2.4.113-2~ubuntu0.22.04.1 正要被安装
              依赖: libdrm-nouveau2 (= 2.4.110-1ubuntu1) 但是 2.4.113-2~ubuntu0.22.04.1 正要被安装
              依赖: libdrm-amdgpu1 (= 2.4.110-1ubuntu1) 但是 2.4.113-2~ubuntu0.22.04.1 正要被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系

错误原因

这个错误是因为系统中已经安装了较新版本的 libdrm2 等库(2.4.113),但 mesa-common-dev 包需要的是旧版本(2.4.110),导致依赖冲突。

解决方案:降级 libdrm 相关包

bash 复制代码
# 1. 查看当前已安装的 libdrm 版本
dpkg -l | grep libdrm

# 2. 强制安装匹配的版本
sudo apt install libdrm2=2.4.110-1ubuntu1 \
libdrm-intel1=2.4.110-1ubuntu1 \
libdrm-radeon1=2.4.110-1ubuntu1 \
libdrm-nouveau2=2.4.110-1ubuntu1 \
libdrm-amdgpu1=2.4.110-1ubuntu1 \
libdrm-dev=2.4.110-1ubuntu1

# 3. 然后安装 mesa-common-dev
sudo apt install mesa-common-dev

知识总结

以前遇到某个依赖库存在版本冲突,首先apt remove 卸载,改变安装顺序再尝试,有时能解决问题。本次通过问deepseek得知,已安装的版本,可以通过指定版本号,强制覆盖安装,如:sudo apt install libdrm2=2.4.110-1ubuntu1