Чому 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 показує значок "необхідне оновлення" в рядку стану при необхідності.
Андреа Корбелліні

2
@ Pilot6 Навіть не віддалено близький до того, що він був дублікатом. Питання, яке ви позначили, - це питання про те, які пакунки потребують перезавантаження. Моє запитання - чому один метод оновлення не вимагає перезавантажуватись, хоча я визнаю оновлення пакета, що вимагатиме перезавантаження.
січня

1
ГАРАЗД. Але це тісно пов’язано.
Пілот6

1
@ Pilot6 Що я можу погодитись;)
січня

Відповіді:


81

Тому що apt-get(або просто apt) призначено для плюсів, а коли професіонали:

sudo apt-get dist-upgrade

і побачити нове ядро, що встановлюється, професіонали знають, що вони повинні перезавантажитись, щоб активувати його ...

Автоматичне оновлення призначене для всіх інших там!

;-)

Крім того, тепер ви можете встановити Ubuntu Live Patching ядра з версії 16.04, що дозволяє оновлювати ядро ​​під час роботи вашого сервера.


4
Я хотів би, щоб я міг прийняти всі три відповіді, оскільки технічно всі вони говорять одне і те ж. Але я думаю , що я візьму твій , тому ти змусив мене посміхнутися найбільш ;-)
Jan

6
> :) Трохи гумору у відповіді ніколи не погано! ;-)
Fabby

4
Підтримка живого виправлення ядра зараз знаходиться в основних ядрах, тому, маючи трохи удачі, нам, можливо, не доведеться перезавантажуватись, як тільки ми потрапимо до LTS 16.04.
kasperd

Ваш опис apt-get upgradeпорівняння apt-get dist-upgradeне відповідає, man apt-getані мій досвід використання інструменту. Я впевнений, що різниця пов'язана з тим, як обробляються залежності, які потребують встановлення чи видалення пакетів; "оновлення" пропускає ці пакети, "dist-upgrade" намагається встановити / видалити пакунки, щоб оновлення відбулося.
дероберт

1
@Fabby дещо плутається, оскільки ви видалили цей абзац, але якщо ви подивитесь на сторінку підходящої людини, опис "оновлення" говорить, наприклад, "ні в якому разі не встановлені пакети видалені, або пакети не встановлені та встановлено. " Отже, якщо для нормального оновлення програми потрібна установка нового пакету (наприклад, нове ім’я бібліотеки), це не буде зроблено. Або якщо оновлення ядра використовувало те саме ім'я пакета, це буде зроблено.
дероберт

37

Менеджер оновлень пропонує перезапустити, коли оновлені ядра чи якісь інші системні пакети з послугами, які позначені для перезавантаження при оновленні.

У цьому випадку /var/run/reboot-requiredвстановлюється сценарій встановлення пакета.

Командний рядок apt-get upgradeнічого не пропонує, оскільки він орієнтований на більш просунутих користувачів, які можуть самі вирішити, коли перезапустити систему ;-)

Але після оновлення з використанням apt-get Update Manager через деякий час запропонує також перезапустити.


Я не можу повірити, що це правда? "служби, які неможливо перезапустити без перезавантаження всієї системи."
AB

2
Так, це правда. На кшталт "вискочка" та деякі інші. Не багато.
Пілот6

2
@ Pilot6 Звучить смішно, якщо запуску неможливо перезапустити без перезавантаження. Це повинно було бути оновленням від SysV init, яке можна перезапустити без перезавантаження.
kasperd

@kasperd Це був лише приклад. Я помітив, що менеджер оновлень просить перезапустити деякі пакети, які не містять ядро. Має бути певний перелік цих пакетів. Я не зовсім впевнений, що там на початку.
Пілот6

1
@MaxNanasy Менеджер оновлень з’явиться та запропонує перезавантажити. це може статися через деякий час.
Пілот6

15

Під час встановлення нового ядра вам доведеться перезапустити машину для того, щоб зміни набрали чинності, apt-get просто не нагадує про це.


1
Не лише оновлення ядра. Вам також потрібно або перезавантажити або перезапустити деякі сервіси, коли деякі інші пакети оновлені. Якщо у вас є кмітливість, ви можете часто перезапускати відповідні служби та уникати перезавантаження. Якщо ви цього не зробите, перезавантаження завжди спрацює. Часто непросто розібратися, які послуги потребують перезавантаження, оскільки оновлені пакети можуть включати спільні бібліотеки, від яких багато іншого програмного забезпечення безпосередньо чи опосередковано залежить від іншого програмного забезпечення. Я не обов'язково 100% довіряю графічному менеджеру оновлень, що це також знає.
thomasrutter

7

apt-get насправді повідомляє вас про термінал після встановлення певного пакету, якщо він потребує перезавантаження.

оновлення-менеджер - це все-в-одному тип рішення, який самостійно піклується про всі ваші потреби оновлення.

Я вважаю за краще влучний отримати, хоча, не знаю, чому :)


2

apt-get upgrade не оновлює ядро.

apt-get dist-upgrade оновлює ядро ​​в Ubuntu.

Версії ядра Linux до 4.1 потребують перезавантаження при оновленні ядра.

Інші пакети не потребують перезавантаження, а лише перезавантаження самої програми. Деякі програми Windows, що працюють на Wine, вимагають перезавантажити, але просто введіть команду:

wineserver -k

та перезавантажте програму.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.