如何修复依赖关系

新手涉及到的教学或入门贴,推荐新手必看,版主维护
回复
头像
xiehuoli
帖子: 5941
注册时间: 2006-06-10 8:43
来自: 中国 CS

如何修复依赖关系

#1

帖子 xiehuoli » 2009-03-11 17:52

系统8.10

apt-get remove adobereader-cht
讀取套件清單中... 完成
了解套件依存關係中
Reading state information... 完成
用『apt-get -f install』指令或許能修正這些問題。
下列的套件有無法滿足的依存關係:
acroread: 依存關係: acroread-debian-files (>= 0.0.24medibuntu1.1) 但是它卻不會被安裝。
acroread-dictionary-de: 依存關係: acroread-debian-files (>= 0.0.23) 但是它卻不會被安裝。
acroread-l10n-de: 依存關係: acroread-debian-files (>= 0.0.23) 但是它卻不會被安裝。
E: 無法滿足的相依關係。請嘗試不指定套件明成來執行“apt-get -f install”(或指>
定一個解決辦法)。


apt-get -f install
讀取套件清單中... 完成
了解套件依存關係中
Reading state information... 完成
更正依存關係中... 完成
下列的【新】套件都將被安裝:
acroread-debian-files
下列的【新】套件都將被安裝:
acroread-debian-files
更新 0 個套件,新安裝 1 個套件,刪除 0 個套件,另不更新 43 個套件。
3 個套件沒有完全安裝或刪除完畢。
需要下載 13.9kB 中 0B 的檔案。
After this operation, 135kB of additional disk space will be used.
繼續執行嗎? 是按 [Y] 鍵,否按 [n] 鍵 y
警告:下列的套件驗證失敗!
acroread-debian-files
不驗證這些套件就直接安裝?[y/N]y
(正在讀取資料庫 ... 系統目前總共安裝有 108443 個檔案和目錄。)
正在解壓縮 acroread-debian-files (從 .../acroread-debian-files_0.0.24medibuntu1.1_i386.deb) ...
dpkg:處理 /var/cache/apt/archives/acroread-debian-files_0.0.24medibuntu1.1_i386.deb (--unpack)時出錯:
正試圖覆蓋“/usr/bin/acroread”,它屬於套件 adobereader-cht
在處理時有錯誤發生:
/var/cache/apt/archives/acroread-debian-files_0.0.24medibuntu1.1_i386.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
年轻没有失败! ! ! ! ! !
噢!有怪兽,有怪兽!
hepha
帖子: 23
注册时间: 2008-06-19 4:54

Re: 如何修复依赖关系

#2

帖子 hepha » 2009-03-12 23:20

sudo dpkg -r adobereader-cht
头像
xiehuoli
帖子: 5941
注册时间: 2006-06-10 8:43
来自: 中国 CS

Re: 如何修复依赖关系

#3

帖子 xiehuoli » 2009-03-13 14:31

依赖坏了
dpkg 都用不了了
年轻没有失败! ! ! ! ! !
噢!有怪兽,有怪兽!
头像
skyx
论坛版主
帖子: 9202
注册时间: 2006-12-23 13:46
来自: Azores Islands
联系:

Re: 如何修复依赖关系

#4

帖子 skyx » 2009-09-15 9:08

xiehuoli 写了: 正在解壓縮 acroread-debian-files (從 .../acroread-debian-files_0.0.24medibuntu1.1_i386.deb) ...
dpkg:處理 /var/cache/apt/archives/acroread-debian-files_0.0.24medibuntu1.1_i386.deb (--unpack)時出錯:
正試圖覆蓋“/usr/bin/acroread”,它屬於套件 adobereader-cht
在處理時有錯誤發生:
/var/cache/apt/archives/acroread-debian-files_0.0.24medibuntu1.1_i386.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
这种情况,我也遇到过,情况如下:

已经安装的a.deb(软件包a) 中包含 /usr/bin/x 文件
正在安装的b.deb(软件包b)中也 包含 /usr/bin/x 文件,而软件包b的冲突描述中,也没有提示软件包b 与软件包a冲突, 包管理器在安装软件包b时,事先并不知道,这样问题就来了。

这时候 sudo apt-get install -f 的结果,仍然会是相同的错误提示,

我的经验是先sudo apt-get remove a ,执行后一般就可以解决

但是糟糕的情况下, 软件包管理器有可能会提示软件包a不存在。这时,可以使用aptitude 来解决:

sudo aptitude remove b , 根据aptitude的提示,就可以取消软件包b的安装,取消后,再


sudo aptitude remove a


aptitude在处理这类软件包冲突时,远比apt-get 的超级牛力强。


建议: 谨慎地使用ubuntu第三方源或ubuntu镜像源,最好不用要随便使用ubuntu非官方源, 个人以为ppa源也要慎用

ubuntu网上来路不明的二进制deb软件非常多,未来哪天ubuntu出现大面积安全问题, 最有可能的原因就是: ubuntu用户加了恶意的第三方源或不小心安装了来路不明的有恶意代码的deb软件包


不是说所有第三方源都不好,著名的ubuntu 非官方源medibuntu还是不错的:

http://www.medibuntu.org/
no security measure is worth anything if an attacker has physical access to the machine
jjwawa
帖子: 280
注册时间: 2009-07-28 12:38

Re: 如何修复依赖关系

#5

帖子 jjwawa » 2009-09-16 14:02

aptitude在处理这类软件包冲突时,远比apt-get 的超级牛力强。


建议: 谨慎地使用ubuntu第三方源或ubuntu镜像源,最好不用要随便使用ubuntu非官方源, 个人以为ppa源也要慎用

ubuntu网上来路不明的二进制deb软件非常多,未来哪天ubuntu出现大面积安全问题, 最有可能的原因就是: ubuntu用户加了恶意的第三方源或不小心安装了来路不明的有恶意代码的deb软件包

不是说所有第三方源都不好,著名的ubuntu 非官方源medibuntu还是不错的:

http://www.medibuntu.org/
学习 :em11
ssshzh
帖子: 10
注册时间: 2008-04-19 10:17

Re: 如何修复依赖关系

#6

帖子 ssshzh » 2009-09-19 15:24

像我这个怎么办啊,是内核文件的,但是可以用


正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
共升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 0 个软件未被升级。
有 7 个软件包没有被完全安装或卸载。
解压缩后会消耗掉 0B 的额外空间。
正在设置 linux-image-2.6.28-15-generic (2.6.28-15.52) ...
Running depmod.
update-initramfs: Generating /boot/initrd.img-2.6.28-15-generic
Running postinst hook script /sbin/update-grub.
Searching for GRUB installation directory ... found: /boot/grub
Searching for default file ... found: /boot/grub/default
Testing for an existing GRUB menu.lst file ... found: /boot/grub/menu.lst
Searching for splash image ... none found, skipping ...
Found kernel: /vmlinuz-2.6.28-15-generic
Found kernel: /vmlinuz-2.6.28-11-generic
Found kernel: /memtest86+.bin
Updating /boot/grub/menu.lst ... done

Examining /etc/kernel/postinst.d.
run-parts: executing /etc/kernel/postinst.d/nvidia-common
run-parts: /etc/kernel/postinst.d/nvidia-common exited with return code 10
Failed to process /etc/kernel/postinst.d at /var/lib/dpkg/info/linux-image-2.6.28-15-generic.postinst line 1002.
dpkg:处理 linux-image-2.6.28-15-generic (--configure)时出错:
子进程 post-installation script 返回了错误号 2
dpkg:依赖关系问题使得 linux-restricted-modules-2.6.28-15-generic 的配置工作不能继续:
linux-restricted-modules-2.6.28-15-generic 依赖于 linux-image-2.6.28-15-generic;然而:
软件包 linux-image-2.6.28-15-generic 还没有被配置。
dpkg:处理 linux-restricted-modules-2.6.28-15-generic (--configure)时出错:
依赖关系问题 - 仍未被配置
dpkg:依赖关系问题使得 linux-image-generic 的配置工作不能继续:
linux-image-generic 依赖于 linux-image-2.6.28-15-generic;然而:
软件包 linux-image-2.6.28-15-generic 还没有被配置。
dpkg:处理 linux-image-generic (--configure)时出错:
依赖关系问题 - 仍未被配置
dpkg:依赖关系问题使得 linux-restricted-modules-generic 的配置工作不能继续:
linux-restricted-modules-generic 依赖于 linux-restricted-modules-2.6.28-15-generic;然而:
软件包 linux-restricted-modules-2.6.28-15-generic 还没有被配置。
dpkg:处理 linux-restricted-modNo apport report written because the error message indicates its a followup error from a previous failure.
No apport report written because the error message indicates its a followup error from a previous failure.
No apport report written because MaxReports is reached already
No apport report written because MaxReports is reached already
ules-generic (--configure)时出错:
依赖关系问题 - 仍未被配置
dpkg:依赖关系问题使得 linux-generic 的配置工作不能继续:
linux-generic 依赖于 linux-image-generic (= 2.6.28.15.20);然而:
软件包 linux-image-generic 还没有被配置。
linux-generic 依赖于 linux-restricted-modules-generic (= 2.6.28.15.20);然而:
软件包 linux-restricted-modules-generic 还没有被配置。
dpkg:处理 linux-generic (--configure)时出错:
依赖关系问题 - 仍未被配置
正在设置 linux-headers-2.6.28-15-generic (2.6.28-15.52) ...
Examining /etc/kernel/header_postinst.d.
run-parts: executing /etc/kernel/header_postinst.d/nvidia-common
run-parts: /etc/kernel/header_postinst.d/nvidia-common exited with return code 10
Failed to process /etc/kernel/header_postinst.d at /var/lib/dpkg/info/linux-headers-2.6.28-15-generic.postinst line 110.
dpkg:处理 linux-headers-2.6.28-15-generic (--configure)时出错:
子进程 post-installation script 返回了错误号 2
No apport report written because MaxReports is reached already
dpkg:依赖关系问题使得 linux-headers-generic 的配置工作不能继续:
linux-headers-generic 依赖于 linux-headers-2.6.28-15-generic;然而:
软件包 linux-headers-2.6.28-15-generic 还没有被配置。
dpkg:处理 linux-headers-generic (--configure)时出错:
依赖关系问题 - 仍未被配置
No apport report written because MaxReports is reached already
在处理时有错误发生:
linux-image-2.6.28-15-generic
linux-restricted-modules-2.6.28-15-generic
linux-image-generic
linux-restricted-modules-generic
linux-generic
linux-headers-2.6.28-15-generic
linux-headers-generic
E: Sub-process /usr/bin/dpkg returned an error code (1)
头像
skyx
论坛版主
帖子: 9202
注册时间: 2006-12-23 13:46
来自: Azores Islands
联系:

Re: 如何修复依赖关系

#7

帖子 skyx » 2009-09-20 8:26

sudo dpkg --configure -a

sudo apt-get install -f


源不能搞错,也不可搞混,换官方源后:

sudo apt-get update

再装没安装成功的软件


请楼下补充:
no security measure is worth anything if an attacker has physical access to the machine
回复