声明
笔者最近意外的发现 笔者的个人网站 http://tiankonguse.com/ 的很多文章被其它网站转载,但是转载时未声明文章来源或参考自 http://tiankonguse.com/ 网站,因此,笔者添加此条声明。
郑重声明:这篇记录《安装软件时依赖冲突的万能解决方案》转载自 http://tiankonguse.com/ 的这条记录:http://tiankonguse.com/record/record.php?id=653
前言
好吧,可能是个标题党了.
不过如果你这个方法还不能解决依赖冲突,那就我目前就不知道有什么办法了.
不过一般情况下,使用这个方法都可以修复问题的.
正文
基础的解决方案
如果你是刚遇到依赖冲突问题,可以先参考这里基本的解决方案.
源的问题:下列的软件包有不能满足的依赖关系
各种解决方法:软件包没有被完全安装或卸载问题
进入正题
先说说背景吧.
使用基础解决方案不能解决的,更严重的是,想重装那些软件,却卸载不了,提示依赖冲突.
这个时候我都想重装系统了,可是我配置了这个多东西,安装了这个多软件等原因,不到最后一步我不想选择重装系统这个方法,毕竟重装系统不一定能解决冲突问题.
不过,我最终还是找到了解决方案.
这就分享出来,帮大家多一个选择的解决方案,当然不到万不得已请不要选择这个方法.
现在我们来看看这个依赖的冲突问题吧.
安装软件时提示的是什么错误信息呢?
安装的软件依赖的软件版本过低.
首先系统怎么知道依赖冲突呢?
应该是每个软件都写清楚了自己依赖哪些软件以及这些软件的最低版本.
那我们能不能手动修改这些依赖的软件的版本呢?
如果知道这些信息在哪里储存,那就可以修改了.
那这些信息在哪里储存呢?
貌似在 /var/lib/dpkg/status 这个文件里面.
比如我的 vim-common 的信息
Package: vim-common Status: install ok installed Priority: important Section: editors Installed-Size: 296 Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> Architecture: i386 Source: vim Version: 2:7.3.547-6ubuntu3~blueyed1~precise Depends: libc6 (>= 2.3.4) Recommends: vim | vim-gnome | vim-gtk | vim-athena | vim-nox | vim-tiny Conffiles: /etc/vim/vimrc 682aa2a07693cc27756eee9751db3903 Description: Vi IMproved - Common files Vim is an almost compatible version of the UNIX editor Vi. . Many new features have been added: multi level undo, syntax highlighting, command line history, on-line help, filename completion, block operations, folding, Unicode support, etc. . This package contains files shared by all non GUI-enabled vim variants (vim and vim-tiny currently) available in Debian. Examples of such shared files are: manpages, common executables like xxd, and configuration files. Homepage: http://www.vim.org/ Original-Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
可以看到里面的两个对我们来说重要的数据
Version: 2:7.3.547-6ubuntu3~blueyed1~precise Depends: libc6 (>= 2.3.4)
假设我们的 libc6 的版本是 2.3.2 的话,安装 vim-common 的话机会提示依赖冲突,说需要 libc6 的版本至少是 2.3.4.
此时我们可以做修改了最低依赖版本会怎么样呢?
比如
Version: 2:7.3.547-6ubuntu3~blueyed1~precise Depends: libc6 (>= 2.3.2)
这是再次修复竟然成功了,也可以卸载了.
好吧,解决方案就是这个:把依赖的软件的版本修改为目前安装的版本即可.
参考