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
      据说如果方案中仍然存在未解决的依赖,可以选择 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软件”中更改

apt-get update 更新源列表,

apt-get upgrade 更新已安装的包到最新版本

apt-get dist-upgrade 升级系统