Windows Installer předchází zmatku

DEFINICE Windows Installer je služba operačního systému Windows, která umožňuje čistě a konzistentně instalovat pot...


DEFINICE
Windows Installer je služba operačního systému Windows, která umožňuje čistě a
konzistentně instalovat potřebné aplikace.
Už žádné další trable s knihovnami DLL. To bylo jen jedním z řady cílů
společnosti Microsoft, když spolu s Windows 2000 před 4 lety představila i
novou službu Windows Installer. Ta nyní běží i na Windows XP a Windows Serveru
2003 a na dřívějších verzích Windows pak prostřednictvím servisních balíčků.
Služba Windows Installer byla navržena tak, aby zajišťovala potřebnou
konzistenci procesu instalace aplikací ve Windows. Dokud neexistovala, vývojáři
softwaru psali své vlastní instalátory s proprietárními automatickými
instalačními skripty nebo využívali služeb specializovaných autorských nástrojů
od třetích stran. Ty jim umožnily rychle vytvořit vlastní instalační programy.
Každý z takto vytvořených programů pak pracoval podle svých vlastních pravidel,
disponoval jen omezenou schopností sledovat, co se v rámci instalace děje se
soubory, které využívají i další aplikace, a už vůbec nebyl schopný sledovat
sdílené použití ostatních zdrojů, jako například klíčů v registru Windows.
Tato situace vedla ke klasickému problému, kdy jedna aplikace nainstalovala
nějakou dynamickou knihovnu (DLL, Dynamic Link Library) do systémového adresáře
operačního systému jen proto, aby ji vzápětí jiná aplikace přepsala knihovnou
svou a to pokud možno nekompatibilní, například z důvodu zastaralosti. Tak byla
mnohdy po instalaci nového softwaru narušena funkčnost dříve provozovaných
aplikací. Deinstalační programy zase bez patřičných znalostí klidně smazaly DLL
svých aplikací nebo změnily klíče v registrech i přesto, že je sdílely s jinými
programy.
Windows Installer se snaží vynucovat dodržování sady instalačních pravidel,
které pak zajistí bezproblémovou instalaci i deinstalaci aplikací. Kompatibilní
aplikace jím stanovená omezení dodržují.
Součástí řady procesů, které Windows Installer realizuje, je mimo jiné i
sledování verzí, které zamezuje přepsání novějších souborů staršími. Současně
je sledováno i provádění veškerých dalších změn týkajících se operačního
systému Windows, a to včetně zásahů do systémových souborů a do klíčů registru.

Principy fungování
Aby mohl Windows Installer pracovat, vývojáři softwaru musejí nahradit tradiční
instalační skripty speciálně zabalenými soubory, označovanými jako MSI (podle
koncovky souborů). A protože Windows Installer může sledovat pouze instalace,
které dodržují formát MSI, koncoví uživatelé získají plné výhody jeho
přítomnosti v systému pouze tehdy, když jej aplikace instalované na jejich
počítači podporují.
Zmíněné balíky MSI fungují jako malé relační databáze s poli obsahujícími
všechny informace a instrukce, které Windows Installer potřebuje k tomu, aby
mohl úspěšně nainstalovat danou aplikaci. Po spuštění konvertuje data obsažená
v MSI do instalačního a deinstalačního skriptu. To umožňuje nejen zajistit
korektně případnou budoucí deinstalaci aplikace, ale také obnovu systému do
stavu, ve kterém se nacházel před její instalací v případě, že tento proces z
nějakého důvodu selhal. Pokud například selže upgrade na novou verzi MS Office,
systém bude schopen obnovit předchozí stav třeba přepisovanou instalaci Office
XP. Uživatel tak bude moci dále pracovat jako dosud, což s dřívějšími
prostředky nebylo možné.
V rámci MSI jsou instalační data rozdělena do 3 úrovní. Tato architektura
umožňuje instalovat aplikaci bez toho, aby bylo třeba spravovat jednotlivé
prostředky přímo. Místo toho jsou například sdruženy potřebné klíče registru
(například ty, které obsahují licenční informace), soubory (například
spustitelný EXE soubor) a další zdroje do komponent, jakou je například
kontrolor pravopisu v Microsoft Office.

V akci
Windows Installer sleduje a zaznamenává veškeré změny provedené v systému v
rámci instalace nového softwaru. Při tomto procesu pracuje na úrovni výše
zmíněných komponent a vytváří mimo jiné takzvané referenční součty, které
obsahují informaci o tom, kolik aplikací sdílí danou komponentu. Současně
přiděluje každé komponentě unikátní identifikátor (nazývaný GUID nebo gwid) a
cestu ke klíčům registru obě tyto hodnoty pak Windows používají k její
identifikaci.
Díky správě referenčních součtů na úrovni komponent a tedy nikoli na úrovni
každého jednotlivého zdroje může Windows Installer snadno sledovat všechny
sdílené zdroje pohromadě, a nemusí se tedy omezovat jen na soubory. DLL a další
zdroje jsou pak mazány pouze tehdy, když je smazána poslední komponenta, která
je využívá.
Komponenty jsou v rámci balíků MSI sdružovány do takzvaných vlastností
(features). Nejde vlastně o nic jiného než o zdroje, které jsou nějakým
způsobem rozpoznatelné uživatelem může jít například o aplikaci MS Word v MS
Office. V rámci instalace bývá často možno zvolit, zda příslušnou vlastnost
instalovat.
Hlavní vlastnost pak může disponovat ještě podpoložkami v případě již zmíněného
MS Wordu může jít třeba o kontrolor gramatiky. Tak je k dispozici ještě daleko
jemnější kontrola instalovaných komponent. Jednotlivé vlastnosti mohou sdílet
určité komponenty; v rámci instalace pak poskytují více voleb než původní
instalační skripty.
Prostřednictvím MSI mohou být subaplikace označované jako vlastnosti
nainstalovány tak, aby běžely lokálně, aby běžely ze sekundární lokace
(například produktové CD), nebo mohou být jen "inzerovány" (takže se sice
ukážou v menu aplikace, ale nainstalují se až v okamžiku, kdy je uživatel chce
poprvé spustit). Všechny vlastnosti, které dohromady tvoří nějakou aplikaci,
jsou uloženy do jednoho souboru MSI.

Správa skrze API
Windows Installer není nějakou uzavřenou černou skříňkou. Kromě plnění výše
uvedených funkcí obsahuje také vlastní rozhraní API (Application Programming
Interface), které může být využito externími aplikacemi pro sledování
instalovaných produktů, vlastností, komponent i dalších dat. Prostřednictvím
tohoto API může odpovídající nástroj pro správu softwaru například obnovit
poškozenou aplikaci. API mu totiž umožní nejprve zjistit, která aplikace
nepracuje správně, a následně i reinstalovat právě tuto komponentu a k ní
přidružené zdroje (není tedy třeba instalovat znovu celý softwarový balík).
Administrátoři IT ve firmách mají možnost upravovat balíky MSI tak, aby si
usnadnili nasazování nových aplikací. Lze totiž vytvořit takzvanou doplňkovou
transformaci soubor MST. Ta může souboru MSI poskytnout informace, které za
běžných okolností vyžaduje při instalaci od uživatele například když chce
vědět, které komponenty aplikace má nainstalovat nebo zda je korektní vybraná
instalační cesta. MST umožňuje také odstranit ze základní instalace nechtěné
komponenty.

Aktuální stav
Výrobci softwaru byli dosud při přijímání formátu MSI poměrně pomalí. I po 4
letech od chvíle, kdy byl Windows Installer nabídnut uživatelům, mnohé aplikace
stále využívají vlastní instalační rutiny.
Aby alespoň firemní správci mohli využít všech výhod Windows Installeru, často
se obracejí k automatickým balicím nástrojům. Ty umějí vytvořit balíky MSI i
pro aplikace, které je standardně nevyužívají, a nabízejí možnost vytvářet
příslušné transformace pro existující balíky MSI. Pro většinu ostatních
uživatelů však bude problém instalačních konfliktů živý až do chvíle, kdy
všechny aplikace s nestandardními instalačními rutinami nahradí nové verze s
podporou MSI.









Komentáře
K tomuto článku není připojena žádná diskuze, nebo byla zakázána.