工作需要安装libjpeg-dev,出现如下错误:
syberos@thinkpad-p15v-1:~/work$ sudo apt-get install libjpeg-dev 正在读取软件包列表... 完成 正在分析软件包的依赖关系树 正在读取状态信息... 完成 有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是 因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件 包尚未被创建或是它们已被从新到(Incoming)目录移出。 下列信息可能会对解决问题有所帮助: 下列软件包有未满足的依赖关系: libjpeg-dev : 依赖: libjpeg8-dev 但是它将不会被安装 E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
查找资料后确认是有其他软件依赖其他版本库. 继续尝试安装他的依赖libjpeg8-dev:
syberos@thinkpad-p15v-1:~/work$ sudo apt-get install libjpeg8-dev 正在读取软件包列表... 完成 正在分析软件包的依赖关系树 正在读取状态信息... 完成 有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是 因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件 包尚未被创建或是它们已被从新到(Incoming)目录移出。 下列信息可能会对解决问题有所帮助: 下列软件包有未满足的依赖关系: libjpeg8-dev : 依赖: libjpeg-turbo8-dev (>= 1.1.90+svn722-1ubuntu6) 但是它将不会被安装 E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
看到下面就有提示信息了, libjpeg8-dev : 依赖 libjpeg-turbo8-dev ,且版本不对,再尝试安装libjpeg-turbo8-dev:
syberos@thinkpad-p15v-1:~/work$ sudo apt-get install libjpeg-turbo8-dev 正在读取软件包列表... 完成 正在分析软件包的依赖关系树 正在读取状态信息... 完成 有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是 因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件 包尚未被创建或是它们已被从新到(Incoming)目录移出。 下列信息可能会对解决问题有所帮助: 1.5.2-0ubuntu5.18.04.4 下列软件包有未满足的依赖关系: libjpeg-turbo8-dev : 依赖: libjpeg-turbo8 (= 1.4.2-0ubuntu3.4) 但是 1.5.2-0ubuntu5.18.04.4 正要被安装 E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
这样就看出了, 我们已经安装了 ibjpeg-turbo8 1.5.2-0ubuntu5.18.04.4 这个版本,但是 libjpeg-turbo8-dev 库依赖的是libjpeg-turbo8 = 1.4.2-0ubuntu3.4这版本,所以接下来安装libjpeg-turbo8 = 1.4.2-0ubuntu3.4版本的 libjpeg-turbo8库就可以了:
syberos@thinkpad-p15v-1:~/work$ sudo apt-get install libjpeg-turbo8=1.4.2-0ubuntu3.4 正在读取软件包列表... 完成 正在分析软件包的依赖关系树 正在读取状态信息... 完成 下列软件包是自动安装的并且现在不需要了: aptitude-common libboost-iostreams1.58.0 libcwidget3v5 libsigc++-2.0-0v5 libxapian22v5 使用'sudo apt autoremove'来卸载它(它们)。 下列软件包将被【降级】: libjpeg-turbo8 升级了 0 个软件包,新安装了 0 个软件包,降级了 1 个软件包,要卸载 0 个软件包,有 11 个软件包未被升级。 需要下载 111 kB 的归档。 解压缩后将会空出 61.4 kB 的空间。 您希望继续执行吗? [Y/n] y 获取:1 http://mirrors.aliyun.com/ubuntu xenial-updates/main amd64 libjpeg-turbo8 amd64 1.4.2-0ubuntu3.4 [111 kB] 已下载 111 kB,耗时 0秒 (332 kB/s) debconf: 因为并未安装 apt-utils,所以软件包的设定过程将被推迟 dpkg: 警告: 即将把 libjpeg-turbo8:amd64 从 1.5.2-0ubuntu5.18.04.4 降级到 1.4.2-0ubuntu3.4 (正在读取数据库 ... 系统当前共安装有 267777 个文件和目录。) 正准备解包 .../libjpeg-turbo8_1.4.2-0ubuntu3.4_amd64.deb ... 正在将 libjpeg-turbo8:amd64 (1.4.2-0ubuntu3.4) 解包到 (1.5.2-0ubuntu5.18.04.4) 上 ... 正在设置 libjpeg-turbo8:amd64 (1.4.2-0ubuntu3.4) ... 正在处理用于 libc-bin (2.27-3ubuntu1.2) 的触发器 ...
接着安装:
syberos@thinkpad-p15v-1:~/work$ sudo apt-get install libjpeg-turbo8-dev 正在读取软件包列表... 完成 正在分析软件包的依赖关系树 正在读取状态信息... 完成 下列软件包是自动安装的并且现在不需要了: aptitude-common libboost-iostreams1.58.0 libcwidget3v5 libsigc++-2.0-0v5 libxapian22v5 使用'sudo apt autoremove'来卸载它(它们)。 下列【新】软件包将被安装: libjpeg-turbo8-dev 升级了 0 个软件包,新安装了 1 个软件包,要卸载 0 个软件包,有 11 个软件包未被升级。 需要下载 254 kB 的归档。 解压缩后会消耗 1,418 kB 的额外空间。 获取:1 http://mirrors.aliyun.com/ubuntu xenial-updates/main amd64 libjpeg-turbo8-dev amd64 1.4.2-0ubuntu3.4 [254 kB] 已下载 254 kB,耗时 2秒 (158 kB/s) debconf: 因为并未安装 apt-utils,所以软件包的设定过程将被推迟 正在选中未选择的软件包 libjpeg-turbo8-dev:amd64。 (正在读取数据库 ... 系统当前共安装有 267777 个文件和目录。) 正准备解包 .../libjpeg-turbo8-dev_1.4.2-0ubuntu3.4_amd64.deb ... 正在解包 libjpeg-turbo8-dev:amd64 (1.4.2-0ubuntu3.4) ... 正在设置 libjpeg-turbo8-dev:amd64 (1.4.2-0ubuntu3.4) ...
最后安装 libjpeg-dev就可以了, 管理器会自动安装依赖 libjpeg8-dev, 如下图:
syberos@thinkpad-p15v-1:~/work/$ sudo apt-get install libjpeg-dev 正在读取软件包列表... 完成 正在分析软件包的依赖关系树 正在读取状态信息... 完成 下列软件包是自动安装的并且现在不需要了: aptitude-common libboost-iostreams1.58.0 libcwidget3v5 libsigc++-2.0-0v5 libxapian22v5 使用'sudo apt autoremove'来卸载它(它们)。 将会同时安装下列软件: libjpeg8-dev 下列【新】软件包将被安装: libjpeg-dev libjpeg8-dev 升级了 0 个软件包,新安装了 2 个软件包,要卸载 0 个软件包,有 11 个软件包未被升级。 需要下载 3,098 B 的归档。 解压缩后会消耗 53.2 kB 的额外空间。 您希望继续执行吗? [Y/n] y 获取:1 http://mirrors.aliyun.com/ubuntu xenial/main amd64 libjpeg8-dev amd64 8c-2ubuntu8 [1,552 B] 获取:2 http://mirrors.aliyun.com/ubuntu xenial/main amd64 libjpeg-dev amd64 8c-2ubuntu8 [1,546 B] 已下载 3,098 B,耗时 0秒 (17.1 kB/s) debconf: 因为并未安装 apt-utils,所以软件包的设定过程将被推迟 正在选中未选择的软件包 libjpeg8-dev:amd64。 (正在读取数据库 ... 系统当前共安装有 267794 个文件和目录。) 正准备解包 .../libjpeg8-dev_8c-2ubuntu8_amd64.deb ... 正在解包 libjpeg8-dev:amd64 (8c-2ubuntu8) ... 正在选中未选择的软件包 libjpeg-dev:amd64。 正准备解包 .../libjpeg-dev_8c-2ubuntu8_amd64.deb ... 正在解包 libjpeg-dev:amd64 (8c-2ubuntu8) ... 正在设置 libjpeg8-dev:amd64 (8c-2ubuntu8) ... 正在设置 libjpeg-dev:amd64 (8c-2ubuntu8) ...
至此,我们就解决了这个问题了,.
下列软件包有未满足的依赖关系:
libjpeg-dev : 依赖: libjpeg8-dev 但是它将不会被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
类似依赖问题,应该就是软件版本不对导致依赖不能安装,找到对应依赖库的版本,就可以正常安装了.