我有一台运行 ubuntu 14.04 trusty 的服务器。当我sudo apt-get upgrade
今天运行它时,它报告说它将保留
linux-generic linux-headers-generic linux-headers-server linux-image-generic linux-image-server linux-server
我知道我可以通过运行来升级这些软件包,sudo apt-get dist-upgrade
但我的问题是这是否会导致我的服务器升级到 14.10,因为无论如何我都希望停留在 14.04。
此外,这些软件包是否会dist-upgrade
导致兼容性问题?当我启动 dist-upgrade 时,我得到以下输出:
The following NEW packages will be installed:
linux-headers-3.13.0-39 linux-headers-3.13.0-39-generic
linux-image-3.13.0-39-generic linux-image-extra-3.13.0-39-generic
The following packages will be upgraded:
linux-generic linux-headers-generic linux-headers-server linux-image-generic
linux-image-server linux-server
答案1
引自“man apt-get”:
分布式升级
dist-upgrade 除了执行升级功能之外,还可以智能地处理软件包新版本依赖关系的变化;apt-get有一个“智能”冲突解决系统,它会尝试升级最重要的软件包,而牺牲不太重要的软件包(如果有必要)。因此 dist-upgrade 命令可能会删除一些软件包。/etc/apt/sources.list 文件包含可从中检索所需软件包文件的位置列表。另请参阅apt_preferences(5)用于覆盖单个软件包的一般设置的机制。
因此,您无法通过使用它升级到 14.10。
另一方面,根据我的经验,大多数情况下,软件包被保留下来的原因是它们的依赖项在存储库中(尚未)可用。因此,如果您等待几个小时,您应该能够使用通常的 进行升级apt-get upgrade
。
答案2
您是否尝试过apt-get install
{list of held back packages}
,这对我而言很有用多次。
“dist-upgrade 将安装所有待处理的更新及其新的依赖项。如果出于某种原因,您不想这样做,则应改用 apt-get install package-name dependency-package-name。”