Product SiteDocumentation Site

6.8. 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.8.1. Konfigurowanie dpkg

Jak już zostało wspomniane (spójrz na fiszkę IDĄC DALEJ Unikanie pytań o pliki konfiguracyjne), dpkg może zostać poinstruowany, aby pytać o potwierdzenie w przypadku zastępowania plików konfiguracyjnych (z opcjami --force-confdef --force-confold). Jednakże interakcje mogą mieć trzy inne źródła: jedne pochodzą z samego APTa, inne są obsługiwane przez debconf, a niektóre występują w linii komend w powiązaniu do skryptów konfiguracyjnych pakietu.

6.8.2. Konfigurowanie APTa

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

6.8.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.8.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.8.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.4. 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