apt-get更新和升级说“软件包已被保留”


15

我运行了一个更新和一个升级(apt-get updateapt-get upgrade),然后收到以下消息:

The following packages have been kept back:
  alsa-base scratch

我该怎么做才能获得这些升级?

Answers:


16

执行:

apt-get dist-upgrade

那将解决您的问题。这是一个经典apt问题。以下摘自手册页:

upgrade用于从中枚举的源安装系统上当前安装的所有软件包的最新版本/etc/apt/sources.list。当前安装有可用新版本的软件包将被检索和升级;在任何情况下,都不会删除和安装当前已安装的软件包或尚未安装的软件包。如果不更改其他软件包的安装状态而无法升级的当前安装软件包的新版本将保留为当前版本。必须先执行更新,以便apt-get知道有新版本的软件包可用。

dist-upgrade除了执行升级功能外,还可以智能地处理新版本软件包的依赖关系;apt-get具有一个“智能”冲突解决系统,它将在必要时尝试以不重要的软​​件包为代价来升级最重要的软件包。因此,dist-upgrade命令可能会删除某些软件包。该/etc/apt/sources.list文件包含一个位置列表,可从中检索所需的软件包文件。另请参阅apt_preferences(5),以了解一种重写单个软件包常规设置的机制。  


8

apt-get install在保留的软件包上运行。他们需要的不仅仅是该软件包的新版本(通常是依赖于另一个完整的新软件包)。这样,您将看到他们每个人的需求。远程升级将一味地运行它们,并可能删除妨碍其运行的所有内容。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.