Спираючись на попередню відповідь Оллі, я придумав спосіб знайти всі встановлені на даний момент пакети у вашій системі, для яких потрібна перезавантаження.
~$ mkdir debs
~$ cd debs
~/debs$ apt-get download $(dpkg -l | tail -n +7 | awk '{print $2}')
Зачекайте, поки завантаження завершиться, в моїй системі це було близько 900 Мб, тому це може зайняти деякий час, залежно від вашого з'єднання. Тоді:
~/debs$ for x in $(ls); do y=$(dpkg-deb -I "$x" postinst 2>/dev/null | grep 'reboot-required'); if [ -n "$y" ]; then echo "$x" | grep -Poe '^.*?(?=_)'; fi; done
Вихід може виглядати приблизно так:
dbus
gconf2
initscripts
libc6
libpam0g
libpam-systemd
libssl1.0.0
linux-image-3.19.0-47-generic
linux-image-3.19.0-49-generic
network-manager
upstart
Звичайно, цей спосіб не є дурним. Можливо, існують пакети, які сповіщають про необхідну перезавантаження за допомогою інших засобів, ніж "notify-reboot-Required", і хоча це показує, які встановлені пакети вимагають перезавантаження або не потребують цього, не впевнено, що це буде справедливо для подальшого версії одного пакета.
/var/run/reboot-required
був створений напередодні, але немає/var/run/reboot-required.pkgs
файлу @ Ubuntu 16.04.5 LTS.