为什么apt-get不需要重新启动,而更新管理器却需要重新启动?


53

通常,我尝试通过打开控制台并输入顺序来“击败”更新管理器

sudo apt-get update
sudo apt-get upgrade

据我所知,应该将所有软件包更新到最新的稳定版本。据我所知,更新管理器执行的操作相同。

但是,更新管理器有时(在分发新内核时最常见)在终止后需要重新启动。apt-get即使看起来像我要升级内核,也永远不会这样做。为什么会这样呢?


对于重复的投票:我不是在问哪个软件包需要重新启动,就像链接的问题一样。相反我问为什么 apt-get不问我,甚至重新启动时,我认识一个包进行更新,该更新管理器需要重新启动。


10
还值得注意的是,涵盖apt-get dist-upgrade但未涵盖的更新类型apt-get updgrade更有可能是导致更新管理器建议重新启动的更新。
乔恩·汉娜

4
FWIW,您可以通过检查是否存在来检查是否需要重新启动/var/run/reboot-required。另外,Byobu在需要时在状态栏中显示“需要更新”图标。
Andrea Corbellini 2015年

2
@ Pilot6甚至没有远程差点被重复。您标记的问题是询问哪些软件包需要重新启动。我的问题是,即使我识别出需要重启的软件包,
1

1
好。但这是密切相关的。
飞行员

1
@ Pilot6我同意;)
1

Answers:


81

因为apt-get(或简单地说apt)是针对专业人士的,以及专业人士何时进行的:

sudo apt-get dist-upgrade

并看到正在安装新内核,专业人士知道他们必须重新启动才能激活它...

自动更新适用于其他所有人!

;-)

或者,您现在可以从版本16.04开始安装Ubuntu Live内核修补程序它允许您在服务器运行时更​​新内核。


4
我希望我能接受所有三个答案,因为从技术上讲,它们都说相同的话。但我想我会接受你的,因为你让我最多笑了;-)
1

6
> :)回答中带点幽默是很不错的!;-)
Fabby 2015年

4
内核实时修补支持现在已在主流内核中,因此,幸运的是,一旦到达LTS 16.04,我们可能不必再重新启动。
kasperd

您对apt-get upgradevs的描述与我使用该工具的经验apt-get dist-upgrade都不匹配man apt-get。我很确定差异与如何处理需要安装或删除软件包的依赖项有关;“升级”跳过那些软件包,“ dist-upgrade”尝试安装/删除软件包以进行升级。
derobert

1
@Fabby在您当前删除该段时有些困惑,但是如果您查看apt-get手册页,则对“ upgrade”的描述为:“例如,在任何情况下都不会删除当前已安装的软件包,或者会检索尚未安装的软件包并安装。” 因此,如果正常的应用程序更新需要安装新的软件包(例如,新的库soname),则不会完成。或者,如果内核更新使用相同的程序包名称,则可以完成。
derobert

37

Update Manager建议在升级内核或带有标记为在升级时重新引导的其他一些系统软件包时重新启动。

在这种情况下/var/run/reboot-required,由软件包安装脚本设置。

命令行apt-get upgrade没有任何建议,因为它针对可以决定何时重新启动系统的更高级的用户;-)

但是在使用apt-get Update Manager升级后,过一会儿也会建议重启。


我不敢相信,是真的吗?“必须重新启动整个系统才能重新启动的服务。”
AB

2
是的,这是真的。像“暴发户”等。不太多。
6

2
@ Pilot6如果不重新启动就无法重新启动新贵,这听起来很荒谬。它应该是SysV init的升级,可以不重新启动就重新启动。
kasperd

@kasperd那只是一个例子。我注意到更新管理器要求重新启动某些非内核软件包。这些软件包必须有一些列表。我不太确定那里有暴发户。
Pilot6'6

1
@MaxNanasy更新管理器将弹出并建议重新启动。它可能会在一段时间内发生。
6

15

当您安装新内核时,必须重新启动计算机才能使更改生效,apt-get并没有为此烦恼。


1
不只是内核更新。在升级某些其他软件包时,您还必须重新引导或重新启动某些服务。如果您精明,可以经常重新启动相关服务并避免重新启动。如果您不是,那么重新启动将始终有效。确定要重启哪些服务通常并不容易,因为升级后的程序包可能涉及共享库,许多其他软件直接或间接通过其他软件依赖该共享库。我也不一定100%相信图形更新管理器知道。
thomasrutter 2015年

7

如果安装了某个软件包,则apt-get实际上会在终端上通知您,如果需要重新启动。

update-manager是一种多合一的解决方案,它可以自己解决所有升级需求。

我更喜欢apt-get,不知道为什么:)


2

apt-get upgrade 不更新内核。

apt-get dist-upgrade 在Ubuntu中更新内核。

更新内核后,4.1之前的Linux内核版本需要重新引导。

其他软件包不需要重新启动,只需重新启动应用程序本身即可。在Wine上运行的某些Windows应用程序要求重新启动,但只需键入以下命令:

wineserver -k

并重新启动应用程序。

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.