Dlaczego apt-get nie wymaga restartu w przypadku, gdy robi to menedżer aktualizacji?


53

Często próbuję „pokonać” menedżera aktualizacji, otwierając konsolę i wprowadzając sekwencję

sudo apt-get update
sudo apt-get upgrade

które, zgodnie z moją najlepszą wiedzą, powinny zaktualizować wszystkie pakiety do ich najnowszych stabilnych wydań. Menedżer aktualizacji robi to samo, o ile wiem.

Jednak menedżer aktualizacji czasami (najczęściej, gdy dystrybuowane jest nowe jądro) wymaga ponownego uruchomienia po zakończeniu. apt-getnigdy tego nie robi, nawet jeśli wygląda na to, że aktualizuję jądro. Dlaczego tak jest?


W odpowiedzi na duplikatu głosowania: Ja nie pytając, które pakiety wymagać ponownego uruchomienia komputera, ponieważ związane jest pytanie. Raczej pytam dlaczego apt-get nie prosi mnie, aby ponownie uruchomić nawet gdy uznaję pakiet aktualizowany że menedżer zmiana będzie wymagać ponownego uruchomienia komputera za.


10
Warto również zauważyć, że rodzaj aktualizacji, które są objęte, apt-get dist-upgradeale nie przez, apt-get updgradesą bardziej prawdopodobne, że spowodowałyby, że menedżer aktualizacji zasugerowałby ponowne uruchomienie.
Jon Hanna,

4
FWIW, możesz sprawdzić, czy wymagany jest restart, sprawdzając istnienie /var/run/reboot-required. W razie potrzeby Byobu pokazuje ikonę „wymagana aktualizacja” na pasku stanu.
Andrea Corbellini,

2
@ Pilot6 Nawet zdalnie nie jest duplikatem. Zaznaczone pytanie dotyczy tego, które pakiety wymagają ponownego uruchomienia. Moje pytanie brzmi: dlaczego jedna metoda aktualizacji nie wymaga ode mnie ponownego uruchomienia, mimo że rozpoznaję aktualizowany pakiet, który wymagałby
stycznia

1
DOBRZE. Ale jest to ściśle powiązane.
Pilot6

1
@ Pilot6 że mogę zgodzić się;)
Jan

Odpowiedzi:


81

Ponieważ apt-get(lub po prostu prosty apt) jest dla profesjonalistów, a kiedy profesjonaliści robią:

sudo apt-get dist-upgrade

i widzimy instalowane nowe jądro, profesjonaliści wiedzą, że muszą się zrestartować, aby go aktywować ...

Automatyczna aktualizacja jest dla wszystkich innych!

;-)

Alternatywnie możesz teraz zainstalować łatanie jądra Ubuntu Live od wersji 16.04 i nowszych, co pozwala aktualizować jądro podczas działania serwera.


4
Chciałbym zaakceptować wszystkie trzy odpowiedzi, ponieważ technicznie wszystkie mówią to samo. Ale myślę, że wezmę je, bo mnie uśmiechnąć najbardziej ;-)
sty

6
> :) Odrobina humoru w odpowiedzi nigdy nie jest zła! ;-)
Fabby,

4
Obsługa podglądania na żywo jądra jest teraz dostępna w jądrach głównego nurtu, więc przy odrobinie szczęścia możemy nie musieć się ponownie uruchamiać po przejściu na LTS 16.04.
kasperd

Twój opis apt-get upgradekontra apt-get dist-upgradenie odpowiada man apt-getani mojemu doświadczeniu w korzystaniu z tego narzędzia. Jestem prawie pewien, że różnica ma związek z tym, jak obsługiwane są zależności wymagające instalacji lub usuwania pakietów; „upgrade” pomija te pakiety, „dist-upgrade” próbuje zainstalować / usunąć pakiety, aby umożliwić aktualizację.
derobert

1
@ Fabby nieco zdezorientowany, ponieważ obecnie usuwasz ten akapit, ale jeśli spojrzysz na stronę podręcznika apt-get, opis „upgrade” mówi np. „Pod żadnym pozorem nie są obecnie zainstalowane pakiety usunięte lub pakiety jeszcze nie zainstalowane i zainstalowany. ”. Jeśli więc normalna aktualizacja aplikacji wymaga zainstalowania nowego pakietu (na przykład nowej soname biblioteki), nie zostanie to zrobione. Lub jeśli aktualizacja jądra używałaby tej samej nazwy pakietu, byłoby to zrobione.
derobert

37

Menedżer aktualizacji sugeruje ponowne uruchomienie po aktualizacji jądra lub niektórych innych pakietów systemowych z usługami oznaczonymi do ponownego uruchomienia po aktualizacji.

W takim przypadku /var/run/reboot-requiredjest ustawiany przez skrypt instalacyjny pakietu.

Wiersz poleceń apt-get upgradenic nie sugeruje, ponieważ jest przeznaczony dla bardziej zaawansowanych użytkowników, którzy mogą sami zdecydować, kiedy ponownie uruchomić system ;-)

Ale po aktualizacji za pomocą apt-get Update Manager za chwilę zasugeruje ponowne uruchomienie.


Nie mogę w to uwierzyć, czy to prawda? „usługi, których nie można zrestartować bez ponownego uruchomienia całego systemu”.
AB,

2
Tak to prawda. Jak „upstart” i kilka innych. Niewiele.
Pilot6

2
@ Pilot6 Brzmi śmiesznie, jeśli upstart nie może zostać zrestartowany bez ponownego uruchomienia. To miała być aktualizacja z SysV init, którą można zrestartować bez restartu.
kasperd

@kasperd To był tylko przykład. Zauważyłem, że Menedżer aktualizacji prosi o ponowne uruchomienie niektórych pakietów innych niż jądro. Musi istnieć lista tych pakietów. Nie jestem do końca pewien, czy istnieje upstart.
Pilot6

1
@MaxNanasy Update manager wyskakuje i sugeruje ponowne uruchomienie. może się zdarzyć za jakiś czas.
Pilot6

15

Kiedy instalujesz nowe jądro, musisz zrestartować maszynę, aby zmiany odniosły skutek, apt-get po prostu o tym nie marzy.


1
Nie tylko aktualizacje jądra. Musisz także ponownie uruchomić lub ponownie uruchomić niektóre usługi, gdy niektóre inne pakiety zostaną zaktualizowane. Jeśli jesteś bystry, często możesz zrestartować odpowiednie usługi i uniknąć ponownego uruchomienia. Jeśli nie, to ponowne uruchomienie zawsze będzie działać. Często nie jest łatwo ustalić, które usługi wymagają ponownego uruchomienia, ponieważ zaktualizowane pakiety mogą obejmować współdzielone biblioteki, od których wiele innych programów zależy bezpośrednio lub pośrednio za pośrednictwem innego oprogramowania. Niekoniecznie w 100% ufam menedżerowi aktualizacji graficznej, że wie.
thomasrutter

7

apt-get faktycznie powiadamia cię na terminalu po zainstalowaniu określonego pakietu, jeśli wymaga ponownego uruchomienia.

update-manager to kompleksowe rozwiązanie, które samodzielnie zaspokoi wszystkie potrzeby związane z aktualizacją.

Wolę apt-get, nie wiem dlaczego :)


2

apt-get upgrade nie aktualizuje jądra.

apt-get dist-upgrade aktualizuje jądro w Ubuntu.

Wersje jądra systemu Linux w wersji wcześniejszej niż 4.1 wymagają ponownego uruchomienia po aktualizacji jądra.

Inne pakiety nie wymagają ponownego uruchomienia, wystarczy zrestartować samą aplikację. Niektóre aplikacje Windows działające na Wine wymagają ponownego uruchomienia, ale po prostu wpisz polecenie:

wineserver -k

i uruchom ponownie aplikację.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.