需要下载软件包libsdl2-dev时遇到问题
错误如下:
$ sudo apt-get install libsdl2-dev
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成
有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是
因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件
包尚未被创建或是它们已被从新到(Incoming)目录移出。
下列信息可能会对解决问题有所帮助:
下列软件包有未满足的依赖关系:
libasound2-dev : 依赖: libasound2 (= 1.2.2-2.1ubuntu2.5)
libdbus-1-dev : 依赖: libdbus-1-3 (= 1.12.16-2ubuntu2.3) 但是 1.12.20-2ubuntu4.1 正要被安装
libegl-dev : 依赖: libegl1 (= 1.3.2-1~ubuntu0.20.04.2) 但是 1.4.0-1 正要被安装
libgl-dev : 依赖: libgl1 (= 1.3.2-1~ubuntu0.20.04.2) 但是 1.4.0-1 正要被安装
依赖: libglx-dev 但是它将不会被安装
libgles-dev : 依赖: libgles1 (= 1.3.2-1~ubuntu0.20.04.2) 但是它将不会被安装
依赖: libgles2 (= 1.3.2-1~ubuntu0.20.04.2) 但是 1.4.0-1 正要被安装
libglu1-mesa-dev : 依赖: libglu1-mesa (= 9.0.1-1build1) 但是 9.0.2-1 正要被安装
libglvnd-dev : 依赖: libglvnd0 (= 1.3.2-1~ubuntu0.20.04.2) 但是 1.4.0-1 正要被安装
依赖: libglx-dev (>= 1.3.0-1) 但是它将不会被安装
依赖: libopengl-dev (>= 1.3.0-1) 但是它将不会被安装
libibus-1.0-dev : 依赖: gir1.2-ibus-1.0 (= 1.5.22-2ubuntu2.1) 但是 1.5.26-4 正要被安装
依赖: libglib2.0-dev 但是它将不会被安装
依赖: libibus-1.0-5 (= 1.5.22-2ubuntu2.1) 但是 1.5.26-4 正要被安装
libpulse-dev : 依赖: libpulse0 (= 1:13.99.1-1ubuntu3.13) 但是 1:15.99.1+dfsg1-1ubuntu2.1 正要被安装
依赖: libpulse-mainloop-glib0 (= 1:13.99.1-1ubuntu3.13) 但是 1:15.99.1+dfsg1-1ubuntu2.1 正要被安装
依赖: libglib2.0-dev 但是它将不会被安装
libudev-dev : 依赖: libudev1 (= 245.4-4ubuntu3.22) 但是 249.11-0ubuntu3.9 正要被安装
libwayland-dev : 依赖: libwayland-client0 (= 1.18.0-1ubuntu0.1) 但是 1.20.0-1ubuntu0.1 正要被安装
依赖: libwayland-server0 (= 1.18.0-1ubuntu0.1) 但是 1.20.0-1ubuntu0.1 正要被安装
依赖: libwayland-cursor0 (= 1.18.0-1ubuntu0.1) 但是 1.20.0-1ubuntu0.1 正要被安装
依赖: libwayland-egl1 (= 1.18.0-1ubuntu0.1) 但是 1.20.0-1ubuntu0.1 正要被安装
libx11-dev : 依赖: libx11-6 (= 2:1.6.9-2ubuntu1.5) 但是 2:1.7.5-1ubuntu0.2 正要被安装
依赖: libxau-dev (>= 1:1.0.0-1) 但是它将不会被安装
依赖: libxdmcp-dev (>= 1:1.0.0-1) 但是它将不会被安装
依赖: libxcb1-dev 但是它将不会被安装
libxcursor-dev : 依赖: libxcursor1 (= 1:1.2.0-2) 但是 1:1.2.0-2build4 正要被安装
依赖: libxrender-dev 但是它将不会被安装
依赖: libxfixes-dev 但是它将不会被安装
libxext-dev : 依赖: libxext6 (= 2:1.3.4-0ubuntu1) 但是 2:1.3.4-1build1 正要被安装
libxi-dev : 依赖: libxi6 (= 2:1.7.10-0ubuntu1) 但是 2:1.8-1build1 正要被安装
依赖: libxfixes-dev 但是它将不会被安装
libxinerama-dev : 依赖: libxinerama1 (= 2:1.1.4-2) 但是 2:1.1.4-3 正要被安装
libxkbcommon-dev : 依赖: libxkbcommon0 (= 0.10.0-1) 但是 1.4.0-1 正要被安装
libxrandr-dev : 依赖: libxrandr2 (= 2:1.5.2-0ubuntu1) 但是 2:1.5.2-1build1 正要被安装
依赖: libxrender-dev 但是它将不会被安装
libxss-dev : 依赖: libxss1 (= 1:1.2.3-1) 但是 1:1.2.3-1build2 正要被安装
libxt-dev : 依赖: libxt6 (= 1:1.1.5-1) 但是 1:1.2.1-1 正要被安装
依赖: libsm-dev 但是它将不会被安装
libxv-dev : 依赖: libxv1 (= 2:1.0.11-1) 但是 2:1.0.11-1build2 正要被安装
libxxf86vm-dev : 依赖: libxxf86vm1 (= 1:1.1.4-1build1) 但是 1:1.1.4-1build3 正要被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
花了不少时间,最后在这篇博客中找到答案https://blog.csdn.net/lishuaigell/article/details/124740342
这里阐述一下,这种情况大多是因为镜像源和ubuntu版本不匹配,网上的镜像源的地址需要做一些修改,先搜索版本代号
$ sudo lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 22.04.3 LTS
Release: 22.04
Codename: jammy
对应镜像源版本如下
#阿里源
deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
更新镜像源
sudo apt-get update
sudo apt-get upgrade
更新完成后,重新下载即可
sudo apt-get install libsdl2-dev