我怎么知道哪个软件包需要重新启动我的系统?

bel*_*qua 89 package-management

我已经unattended-upgrade在我的 Ubuntu 系统上进行了设置。有时,我会远程登录其中一个,我会看到一条消息,通知我需要重新启动系统(以完成升级)。有没有办法确定触发此通知的特定包(或包集)?

Oll*_*lli 87

精简版:

cat /var/run/reboot-required.pkgs
Run Code Online (Sandbox Code Playgroud)

解释:

看起来有一种简单的方法可以自动提取请求的信息。

里面.deb的文件有安装控制文件,包括postinst(安装后运行)。

例如,在 中linux-image-2.6.35-25-generic_2.6.35-25.44_amd64.deb
postinst包括

my $notifier          = "/usr/share/update-notifier/notify-reboot-required";

my $warn_reboot     = 'Yes';     # Warn that we are installing a version of
                                 # the kernel we are running
Run Code Online (Sandbox Code Playgroud)

# Warn of a reboot
if (-x $notifier) {
 system($notifier);
}
Run Code Online (Sandbox Code Playgroud)

shell 脚本 /usr/share/update-notifier/notify-reboot-required更新
/var/run/reboot-required /var/run/reboot-required.pkgs.

后一个文件包含请求重新启动的软件包列表。

  • 在我的系统上,文件 `/var/run/reboot-required` 是在一天前创建的,但没有 `/var/run/reboot-required.pkgs` 文件 @ Ubuntu 16.04.5 LTS。 (2认同)

arr*_*nge 25

unattended-upgrades当它看到 a/var/run/reboot-required存在时,建议重新启动。该文件是由postinst一些包中的(安装后)脚本创建的,它看起来像这样:

[ -x /usr/share/update-notifier/notify-reboot-required ] && \
/usr/share/update-notifier/notify-reboot-required || true
Run Code Online (Sandbox Code Playgroud)

如果您想查看哪些包触发了此操作,可以查看/var/run/reboot-required.pkgs文件的内容。

有关更多信息,请参阅此线程