Ubuntu 14.04 “无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关” 解决办法

Ubuntu 14.04 “无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关” 解决办法_第1张图片

 

ubuntu下apt-get install 安装软件, 报“无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系”。

这个错误出现的主要原因是,系统中已经安装了被依赖的包的高版本。例如在我安装 openssh-server 时,有一个对于 openssh-client 的依赖,但是我系统中已经提前安装了openssh-client 这个包,并且版本高于所要求的这个版本,导致安装失败。 

网上提到的解决方法之一:安装制定版本号的被依赖包:

sudo apt-get install openssh-client=1:7.2p2-4ubuntu2.4

网上提到的解决方法之二:使用aptitude进行安装。

首先需要安装 aptitude:

sudo apt-get install aptitude

然后使用 aptitude 安装包:

sudo aptitude install openssh-server

这时 aptitude 会对依赖关系进行智能处理:

Ubuntu 14.04 “无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关” 解决办法_第2张图片

据说如果方案中仍然存在未解决的依赖,可以选择 n,aptitude 会重新计算可行方案,包括对已存在的包进行降级等。

 

另外我自己福至心灵想到的解决方法:

先卸载已安装好的被依赖包即 openssh-client,然后再次安装 openssh-server。这时因为系统中已经没有了openssh-client,因此apt-get 会首先选择合适版本的 openssh-client 安装,然后再安装 openssh-server。

卸载安装好的包,及其依赖的包,及配置文件:

sudo apt-get --purge remove openssh-server

另外,apt-get 还可能会因为 source 错误而下载失败,这个时候可以手工更改 source 列表,指定下载源。

源列表维护在:/etc/apt/sources.list 中。可以备份后手工更改。

此外,也可以在“系统设置”-“软件和更新”-“ubuntu软件”中更改

Ubuntu 14.04 “无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关” 解决办法_第3张图片

 

Ubuntu 14.04 “无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关” 解决办法_第4张图片

之后用 apt-get update 更新源列表,apt-get upgrade 更新已安装的包到最新版本

apt-get dist-upgrade 升级系统

 

你可能感兴趣的:(Ubuntu 14.04 “无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关” 解决办法)