Utrzymywanie aktualnych wersji oprogramowania to podstawa bezpieczeństwa. Nawet w przypadku zwykłego desktopa ma to znaczenie, szczególnie jeśli chodzi o przeglądarki internetowe. Pomóc w tym mogą automatyczne aktualizacje pakietów.
Tradycyjna, ręczna aktualizacja oprogramowania w Linuksie sprowadza się w większości dystrybucji do odświeżenia listy dostępnych pakietów i zainstalowania nowych wersji. Dla dystrybucji opartych o pakiety deb będzie toapt-get update; apt-get dist-upgrade
[1]
W dystrybucjach Linuksa takich jak Debian czy Ubuntu do dyspozycji mamy unattended upgrades, czyli mechanizm pozwalający na automatyczne aktualizacje pakietów. Pozwala on aktualizować wskazane pakiety bez ingerencji zarówno użytkownika, jak i administratora systemu. Poza samą aktualizacją umożliwia skonfigurowanie dodatkowych warunków, jak praca tylko przy podłączonym zasilaczu, wymuszenie rebootu systemu po aktualizacji pakietów, ograniczenie pasma przeznaczonego na pobieranie aktualizacji czy sprzątanie starych wersji kernela.
Aby włączyć mechanizm automatycznych aktualizacji, trzeba zainstalować pakiet unattended-upgrades
. Dodatkowo należy wyedytować plik konfiguracyjny:cat /etc/apt/apt.conf.d/20auto-upgrades
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";
Samą konfiguracją działania automatycznych aktulizacji sterujemy przy pomocy zawartości pliku/etc/apt/apt.conf.d/50unattended-upgrades
.
Opcji jest wiele, od tego, które pakiety wykluczyć z aktualizacji, przez raportowanie mailem, czy wspomniane wcześniej limitowanie szybkości pobierania aktualizacji czy reboot systemu. Domyślna zawartość powinna być OK, jeśli korzystamy wyłącznie z podstawowych repozytoriów. W przypadku posiadania dodatkowych źródeł pakietów, warto sprawdzić czy będą one także aktualizowane i w razie potrzeby dostosować plik.
Przetestować działanie wprowadzonych zmian i ogólnie zachowanie możemy poprzez wydanie poleceniaunattended-upgrades -d
Pokaże ono, które pakiety zostałyby zaktualizowane w naszym systemie.
Trzeba pamiętać, że tego typu nienadzorowana aktualizacja zawsze niesie jakieś ryzyko niepowodzenia. Osobiście korzystam od lat na paru desktopach i nie napotkałem problemów. Jest tam jednak Debian w wersji stabilnej, przeważają repozytoria standardowe, a z dodatkowego oprogramowania są jedynie przeglądarki.
W przypadku systemów korzystających z systemd, należy jeszcze zwrócić uwagę na timery, jak to opisano na wiki Debiana. Dzieje się tak, ponieważ plik /etc/cron.daily/apt-compat zawiera na samym początku sprawdzenie, czy jest uruchamiany na systemie z systemd
if [ -d /run/systemd/system ]; then
exit 0
fi
Jeśli tak, kończy działanie.
Na koniec polecam lekturę tego opisu automatycznych aktualizacji. Znajdziecie tam wiele dodatkowych szczegółowych informacji i przykładów.
[1] Dostępna jest też mniej inwazyjna wersja polecenia czyli apt-get update
. Próbuje ona aktualizować tylko te pakiety, których aktualizacja nie wiąże się z usuwaniem ani doinstalowaniem innych pakietów. Ceną jest pozostawienie w dotychczasowej wersji pakietów, których nie da się zainstalować bez tej operacji. Więcej w manualu apt. Interesującym narzędziem do zarządzania pakietami jest opisywany kiedyś wajig.