Product SiteDocumentation Site

6.9. Automatyczne Uaktualnienia

W związku z tym, że Falcot Corp posiada wiele komputerów, ale ograniczoną siłę roboczą, jego administratorzy starają się jak najbardziej zautomatyzować proces uaktualniania. Dlatego programy zarządzające tym procesem powinny działać bez interwencji człowieka.

6.9.1. Konfigurowanie dpkg

As we have already mentioned (see sidebar IDĄC DALEJ Unikanie pytań o pliki konfiguracyjne), dpkg can be instructed not to ask for confirmation when replacing a configuration file (with the --force-confdef --force-confold options). Interactions can, however, have three other sources: some come from APT itself, some are handled by debconf, and some happen on the command line due to package configuration scripts (sometimes handled by ucf).

6.9.2. Konfigurowanie APTa

W przypadku APTa sprawa jest prosta: opcja -y (lub --assume-yes) mówi programowi, aby na wszystkie odpowiedzi odpowiadał "tak".

6.9.3. Konfigurowanie debconf

Omówienie przypadku debconf zasługuje na więcej uwagi. Od początku istnienia tego programu, był on projektowany do kontroli trafności i ilości pytań wyświetlanych użytkownikowi oraz sposobu w jaki są pokazywane. Z tego powodu jego konfiguracja wymaga nadania minimalnego priorytetu dla pytań; tylko pytania powyżej minimalnego priorytetu są wyświetlane. debconf zakłada domyślną odpowiedź (zdefiniowaną przez opiekuna pakietu) dla pytań, które zdecydował pominąć.
Kolejnym znaczącym elementem konfiguracji jest sposób komunikacji używany przez interfejs. Jeżeli zostanie wybrany noninteractive, to wszystkie interakcje z użytkownikiem zostaną wyłączone. W przypadku, gdy pakiet będzie próbował wyświetlić informację, zostanie ona wysłana do administratora w wiadomości e-mail.
W celu zmiany konfiguracji debconf należy użyć narzędzia dpkg-reconfigure z pakietu debconf; omawianą komendą jest dpkg-reconfigure debconf. Warto zauważyć, że w razie potrzeby wartości konfiguracyjne mogą być tymczasowo nadpisane zmiennymi środowiskowymi (przykładowo DEBIAN_FRONTEND kontroluje interfejs, co zostało opisane na stronach pomocy debconf(7)).

6.9.4. Obsługa Interakcji Linii Komend

Ostatnim źródłem interakcji, najtrudniejszym do ominięcia, są skrypty konfiguracyjne uruchamiane przez dpkg. Niestety nie mają one standardowego rozwiązania, a żadna odpowiedź nie jest znacząco lepsza niż inne.
The common approach is to suppress the standard input by redirecting the empty content of /dev/null into it with command </dev/null, or to feed it with an endless stream of newlines. None of these methods is 100 % reliable, but they generally lead to the default answers being used, since most scripts consider a lack of reply as an acceptance of the default value.

6.9.5. Cudowne Połączenie

Poprzez połączenie wcześniej wspomnianych elementów możliwe jest zaprojektowanie małego, dosyć niezawodnego skryptu do wykonywania automatycznych uaktualnień.

Przykład 6.5. Skrypt uaktualniający bez interakcji

export DEBIAN_FRONTEND=noninteractive
yes '' | apt-get -y -o DPkg::options::="--force-confdef" -o DPkg::options::="--force-confold" dist-upgrade