dpkg安装deb缺少依赖包的解决方法

【先贴出解决方案(基于Ubuntu)】:

使用dpkg -i   *.deb 的时候出现依赖没有安装

使用apt-get -f -y install  解决依赖问题后再执行dpkg安装deb包

=====================1.下面是遇到的依赖没有安装===========================

问题

horizon@horizon-pc ~/下载 $ sudo dpkg -i youdao-dict_1.1.0-0-ubuntu_amd64.deb
[sudo] password for horizon:
Selecting previously unselected package youdao-dict.
(正在读取数据库 ... 系统当前共安装有 163525 个文件和目录。)
Preparing to unpack youdao-dict_1.1.0-0-ubuntu_amd64.deb ...
Unpacking youdao-dict (1.1.0-0~ubuntu) ...
dpkg: dependency problems prevent configuration of youdao-dict:
 youdao-dict 依赖于 python3-pyqt5;然而:
  未安装软件包 python3-pyqt5。
 youdao-dict 依赖于 python3-requests;然而:
  未安装软件包 python3-requests。
 youdao-dict 依赖于 python3-xlib;然而:
  未安装软件包 python3-xlib。
 youdao-dict 依赖于 tesseract-ocr;然而:
  未安装软件包 tesseract-ocr。
 youdao-dict 依赖于 tesseract-ocr-eng;然而:
  未安装软件包 tesseract-ocr-eng。
 youdao-dict 依赖于 tesseract-ocr-chi-sim;然而:
  未安装软件包 tesseract-ocr-chi-sim。
 youdao-dict 依赖于 tesseract-ocr-chi-tra;然而:
  未安装软件包 tesseract-ocr-chi-tra。
 youdao-dict 依赖于 python3-pil;然而:
  未安装软件包 python3-pil。
 youdao-dict 依赖于 python3-pyqt5.qtmultimedia;然而:
  未安装软件包 python3-pyqt5.qtmultimedia。
 youdao-dict 依赖于 python3-pyqt5.qtquick;然而:
  未安装软件包 python3-pyqt5.qtquick。
 youdao-dict
dpkg: error processing package youdao-dict (--install):
 依赖关系问题 - 仍未被配置
Processing triggers for hicolor-icon-theme (0.13-1) ...
Processing triggers for gnome-menus (3.10.1-0ubuntu2) ...
Processing triggers for desktop-file-utils (0.22-1ubuntu1) ...
Processing triggers for mime-support (3.54ubuntu1) ...
在处理时有错误发生:
 youdao-dict

===============2.解决依赖========================

执行命令:

horizon@horizon-pc ~/下载 $ sudo apt-get -f -y install

==============3.重新使用dpkg安装deb包=============

horizon@horizon-pc ~/下载 $ sudo dpkg -i youdao-dict_1.1.0-0-ubuntu_amd64.deb
(正在读取数据库 ... 系统当前共安装有 164650 个文件和目录。)
Preparing to unpack youdao-dict_1.1.0-0-ubuntu_amd64.deb ...
Unpacking youdao-dict (1.1.0-0~ubuntu) over (1.1.0-0~ubuntu) ...
正在设置 youdao-dict (1.1.0-0~ubuntu) ...
Processing triggers for hicolor-icon-theme (0.13-1) ...
Processing triggers for gnome-menus (3.10.1-0ubuntu2) ...
Processing triggers for desktop-file-utils (0.22-1ubuntu1) ...
Processing triggers for mime-support (3.54ubuntu1) ...

==============4.启动刚才安装的软件:有道词典============

dpkg安装deb缺少依赖包的解决方法

===========================================================================================================================================================================

【no soluation ,only reference】

依赖包还会出现另外一种情况,在安装网易云音乐的时候出现:

网易音乐包:

netease-cloud-music_1..0_amd64_ubuntu.deb    (从网易官网下载)

直接安装会遇见依赖问题:

horizon@horizon-pc ~/下载 $ sudo dpkg -i netease-cloud-music_1..0_amd64_ubuntu.deb
Selecting previously unselected package netease-cloud-music.
(正在读取数据库 ... 系统当前共安装有 个文件和目录。)
Preparing to unpack netease-cloud-music_1..0_amd64_ubuntu.deb ...
Unpacking netease-cloud-music (1.1.) ...
dpkg: dependency problems prevent configuration of netease-cloud-music:
netease-cloud-music 依赖于 libdbus-- (>= 1.8.);然而:
系统中 libdbus--:amd64 的版本为 1.6.-0ubuntu4.。
netease-cloud-music 依赖于 libstdc++ (>= 5.2);然而:
系统中 libstdc++:amd64 的版本为 4.8.-2ubuntu1~14.04.。
netease-cloud-music 依赖于 libtag1v5 (>= 1.9.-.4ubuntu1);然而:
未安装软件包 libtag1v5。 dpkg: error processing package netease-cloud-music (--install):
依赖关系问题 - 仍未被配置
Processing triggers for libc-bin (2.19-0ubuntu6.) ...
Processing triggers for desktop-file-utils (0.22-1ubuntu1.) ...
Processing triggers for mime-support (.54ubuntu1.) ...
Processing triggers for gnome-menus (3.10.-0ubuntu2) ...
Processing triggers for hicolor-icon-theme (0.13-) ...
在处理时有错误发生:
netease-cloud-music

如果按照第一情况的处理方法处理的话 会出现以下的情况:

horizon@horizon-pc ~/下载 $ sudo apt-get -f -y install
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
正在更正依赖关系... 完成
下列软件包将被【卸载】:
netease-cloud-music
升级了 个软件包,新安装了 个软件包,要卸载 个软件包,有 个软件包未被升级。
有 个软件包没有被完全安装或卸载。
解压缩后将会空出 MB 的空间。
(正在读取数据库 ... 系统当前共安装有 个文件和目录。)
Removing netease-cloud-music (1.1.) ...
Processing triggers for libc-bin (2.19-0ubuntu6.) ...
Processing triggers for hicolor-icon-theme (0.13-) ...
Processing triggers for desktop-file-utils (0.22-1ubuntu1.) ...
Processing triggers for mime-support (.54ubuntu1.) ...
Processing triggers for gnome-menus (3.10.-0ubuntu2) ...
W: Duplicate sources.list entry http://dl.google.com/linux/chrome/deb/ stable/main amd64 Packages (/var/lib/apt/lists/dl.google.com_linux_chrome_deb_dists_stable_main_binary-amd64_Packages)
W: 您可能需要运行 apt-get update 来解决这些问题

按照提示进行操作:

horizon@horizon-pc ~/下载 $ sudo apt-get update
......
忽略 http://ppa.launchpad.net trusty/main Translation-zh
忽略 http://packages.linuxmint.com rebecca/import Translation-zh_CN
忽略 http://packages.linuxmint.com rebecca/import Translation-zh
忽略 http://packages.linuxmint.com rebecca/import Translation-en
忽略 http://packages.linuxmint.com rebecca/main Translation-zh_CN
忽略 http://packages.linuxmint.com rebecca/main Translation-zh
忽略 http://packages.linuxmint.com rebecca/main Translation-en
忽略 http://packages.linuxmint.com rebecca/upstream Translation-zh_CN
忽略 http://packages.linuxmint.com rebecca/upstream Translation-zh
忽略 http://packages.linuxmint.com rebecca/upstream Translation-en
下载 15.4 kB,耗时 2分 19秒 ( B/s)
W: GPG 错误:http://ppa.launchpad.net trusty InRelease: 由于没有公钥,无法验证下列签名: NO_PUBKEY 5A9A06AEF9CB8DB0
W: 无法下载 http://dl.google.com/linux/chrome/deb/dists/stable/Release Unable to find expected entry 'main/binary-i386/Packages' in Release file (Wrong sources.list entry or malformed file) E: Some index files failed to download. They have been ignored, or old ones used instead.

然后再安装试试:

horizon@horizon-pc ~/下载 $ sudo dpkg -i netease-cloud-music_1..0_amd64_ubuntu.deb
Selecting previously unselected package netease-cloud-music.
(正在读取数据库 ... 系统当前共安装有 个文件和目录。)
Preparing to unpack netease-cloud-music_1..0_amd64_ubuntu.deb ...
Unpacking netease-cloud-music (1.1.) ...
dpkg: dependency problems prevent configuration of netease-cloud-music:
netease-cloud-music 依赖于 libdbus-- (>= 1.8.);然而:
系统中 libdbus--:amd64 的版本为 1.6.-0ubuntu4.。
netease-cloud-music 依赖于 libstdc++ (>= 5.2);然而:
系统中 libstdc++:amd64 的版本为 4.8.-2ubuntu1~14.04.。
netease-cloud-music 依赖于 libtag1v5 (>= 1.9.-.4ubuntu1);然而:
未安装软件包 libtag1v5。 dpkg: error processing package netease-cloud-music (--install):
依赖关系问题 - 仍未被配置
Processing triggers for libc-bin (2.19-0ubuntu6.) ...
Processing triggers for desktop-file-utils (0.22-1ubuntu1.) ...
Processing triggers for mime-support (.54ubuntu1.) ...
Processing triggers for gnome-menus (3.10.-0ubuntu2) ...
Processing triggers for hicolor-icon-theme (0.13-) ...
在处理时有错误发生:
netease-cloud-music
horizon@horizon-pc ~/下载 $ sudo apt-get -f -y install
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
正在更正依赖关系... 完成
下列软件包将被【卸载】:
netease-cloud-music
升级了 个软件包,新安装了 个软件包,要卸载 1 个软件包,有 个软件包未被升级。
有 个软件包没有被完全安装或卸载。
解压缩后将会空出 MB 的空间。
(正在读取数据库 ... 系统当前共安装有 个文件和目录。)
Removing netease-cloud-music (1.1.) ...
Processing triggers for libc-bin (2.19-0ubuntu6.) ...
Processing triggers for hicolor-icon-theme (0.13-) ...
Processing triggers for desktop-file-utils (0.22-1ubuntu1.) ...
Processing triggers for mime-support (.54ubuntu1.) ...
Processing triggers for gnome-menus (3.10.-0ubuntu2) ...
W: Duplicate sources.list entry http://dl.google.com/linux/chrome/deb/ stable/main amd64 Packages (/var/lib/apt/lists/dl.google.com_linux_chrome_deb_dists_stable_main_binary-amd64_Packages)
W: 您可能需要运行 apt-get update 来解决这些问题

总结:从以上红色字体看出来两个问题:

  1. 之前准备安装网易云音乐的deb包,没有正确安装,如果再次进行安装和 apt-get -f -y install 操作的时候会让删除之前安装的包。

2.  【source】源出了问题.

解决方案:

  编辑源文件

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

添加ali源:

deb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties
deb http://archive.canonical.com/ubuntu xenial partner
deb-src http://archive.canonical.com/ubuntu xenial partner
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse

更新源:

horizon@horizon-pc /etc/apt $ sudo apt-get update
horizon@horizon-pc /etc/apt $ sudo apt-get upgrade -f
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
正在更正依赖关系... 失败。
下列软件包有未满足的依赖关系:
netease-cloud-music : 依赖: libdbus-- (>= 1.8.) 但是 1.6.-0ubuntu4. 已经安装
依赖: libstdc++ (>= 5.2) 但是 4.8.-2ubuntu1~14.04. 已经安装
依赖: libtag1v5 (>= 1.9.-.4ubuntu1) 但是它还没有被安装
E: 错误,pkgProblemResolver::Resolve 发生故障,这可能是有软件包被要求保持现状的缘故。
E: 无法更正依赖关系

更新完进行升级的时候出现了包冲突,所以需要先清除冲突包:

horizon@horizon-pc /etc/apt $ sudo apt-get purge netease-cloud-music
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
下列软件包将被【卸载】:
netease-cloud-music*
升级了 个软件包,新安装了 个软件包,要卸载 个软件包,有 个软件包未被升级。
有 个软件包没有被完全安装或卸载。
解压缩后将会空出 MB 的空间。
您希望继续执行吗? [Y/n] y
(正在读取数据库 ... 系统当前共安装有 个文件和目录。)
Removing netease-cloud-music (1.1.) ...
Processing triggers for libc-bin (2.19-0ubuntu6.) ...
Processing triggers for hicolor-icon-theme (0.13-) ...
Processing triggers for desktop-file-utils (0.22-1ubuntu1.) ...
Processing triggers for mime-support (.54ubuntu1.) ...
Processing triggers for gnome-menus (3.10.-0ubuntu2) ...

再进行升级操作:

horizon@horizon-pc /etc/apt $ sudo apt-get update
horizon@horizon-pc /etc/apt $ sudo apt-get upgrade -f
......
升级了 个软件包,新安装了 个软件包,要卸载 个软件包,有 个软件包未被升级。
需要下载 MB 的软件包。
解压缩后会消耗掉 MB 的额外空间。
您希望继续执行吗? [Y/n] y
......
正在从软件包中解出模板:%
正在预设定软件包 ...
(正在读取数据库 ... 系统当前共安装有 个文件和目录。)
Preparing to unpack .../libc-bin_2.-3ubuntu1_amd64.deb ...
dpkg: error processing archive /var/cache/apt/archives/libc-bin_2.-3ubuntu1_amd64.deb (--unpack):
触发器配置项文件包含位置指令 interest-await
dpkg: considering deconfiguration of libc-bin, which would be broken by 安装 locales ...
dpkg: no, libc-bin is essential, will not deconfigure
it in order to enable 安装 locales
dpkg: error processing archive /var/cache/apt/archives/locales_2.-3ubuntu1_all.deb (--unpack):
安装 locales 将破坏现有软件
dpkg: considering deconfiguration of locales, which would be broken by 安装 libc6:amd64 ...
dpkg: yes, will deconfigure locales (broken by libc6:amd64)
Preparing to unpack .../libc6_2.-3ubuntu1_amd64.deb ...
De-configuring locales (2.13+git20120306-12.1) ...
De-configuring libc6:i386 (2.19-0ubuntu6.) ...
Checking for services that may need to be restarted...
Checking init scripts...
Nothing to restart.
Unpacking libc6:amd64 (2.27-3ubuntu1) over (2.19-0ubuntu6.) ...
Preparing to unpack .../libc6_2.-3ubuntu1_i386.deb ...
Checking for services that may need to be restarted...
Checking init scripts...
Nothing to restart.
Unpacking libc6:i386 (2.27-3ubuntu1) over (2.19-0ubuntu6.) ...
Preparing to unpack .../base-files_10.1ubuntu2.3_amd64.deb ...
Unpacking base-files (.1ubuntu2.) over (.2ubuntu5.) ...
Processing triggers for libc-bin (2.19-0ubuntu6.) ...
Processing triggers for mintsystem (7.9.) ...
Processing triggers for plymouth-theme-ubuntu-text (0.8.-0ubuntu17.) ...
update-initramfs: deferring update (trigger activated)
Processing triggers for cracklib-runtime (2.9.-1build1) ...
Processing triggers for install-info (5.2..dfsg.-) ...
Processing triggers for man-db (2.6.7.1-1ubuntu1) ...
Processing triggers for initramfs-tools (.103ubuntu4.) ...
update-initramfs: Generating /boot/initrd.img-3.13.--generic
Warning: No support for locale: zh_CN.utf8
E: Sub-process /usr/bin/dpkg returned an error code ()
上一篇:Linux系统编程(36)—— socket编程之UDP详解


下一篇:python之函数用法isupper()