Product SiteDocumentation Site

6.9. Automatické upgrady

Protože Falcot Corp má mnoho počítačů, ale omezený počet pracovníků, jeho administrátoři se pokouší udělat upgrady tak automatické, jak to jen jde. Programy, které to mají na starosti proto musí běžet bez lidského zásahu.

6.9.1. Nastavování dpkg

As we have already mentioned (see sidebar JDEME DÁLE Předcházení otázkám na soubor nastavení), 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. Nastavení APTu

Případ APTu je jednoduchý: volba -y (nebo --assume-yes) říká APTu posuzovat odpovědi na veškeré dotazy odpovědí “yes”.

6.9.3. Nastavení příkazu debconf

Případ příkazu debconf zaslouží detailnější popis. Tento program byl, od svého počátku, navržen ke kontrole důležitosti a významu dotazů zobrazených uživateli, stejně jako způsobu, kterým jsou zobrazeny. Proto jeho nastavení vyžaduje minimální prioritu dotazů; pouze otázky nad minimální prioritu jsou zobrazeny. debconf předpokládá přednastavenou odpověď (definovanou správcem balíčku) na dotazy, které se rozhodl přeskočit.
The other relevant configuration element is the interface used by the frontend. If you choose noninteractive out of the choices, all user interaction is disabled. If a package tries to display an informative note, it will be sent to the administrator by email.
K přenastavení příkazu debconf se používá nástroj dpkg-reconfigure z balíčku debconf; náležitý příkaz je dpkg-reconfigure debconf. Za poznámku stojí, že nastavené hodnoty mohou být přechodně přepsány proměnnými prostředí, pokud je třeba (například DEBIAN_FRONTEND řídí rozhraní, jak je popsáno na stránce manuálu debconf(7)).

6.9.4. Ovládání komunikace na příkazové řádce

Posledním zdrojem vzájemné komunikace a ten nejtěžší k tomu se ho zbavit, je nastavovací skript spouštěný příkazem dpkg. Zde bohužel neexistuje nějaké standardní řešení a žádné řešení není jasně lepší než to druhé.
Všeobecně platným přístupem je potlačit standardní vstup tím, že se do něj přesměruje prázdný obsah pomocí command </dev/null nebo tím, že se zásobuje nekonečným proudem nových řádků. Žádná z těchto metod není stoprocentně spolehlivá, ale obvykle vede k použití přednastavených odpovědí, protože většina skriptů považuje nepřítomnost odpovědi za akceptování přednastavené hodnoty.

6.9.5. Hvězdná kombinace

Kombinací předcházejících prvků je možné navrhnout malý a relativně spolehlivý skript, který může zaopatřit automatické upgrady.

Příklad 6.5. Upgradovací skript bez interaktivity

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