Zatímco si většina spoluobčanů v parných dnech letošního července válela faldíky u moře, řeky, rybníka či jiného osvěžovadla, OS/2 komunita nelenila a vypravila se na již pravidelnou konferenci Český Warpstock do Loun. O tom, že se vyplatilo obětovat pár litrů potu, by vás měl přesvědčit tento článek, který navazuje na mojí prezentaci na konferenci a je dostupný ve formátu PDF též na cédéčku z konference a v sekci Download našeho milého serveru.

Z technických i lidských důvodů je článek rozdělen na tři části. Je proto možné (tedy spíše jisté), že ne všechny odkazy budou fungovat. První část se věnuje obecnému popisu instalátoru WarpIN a jeho použití, ve druhé části byste měli nalézt kompletní návod k výrobě archivů a ve třetí části si ukážeme reálný příklad z praxe.

Nuže, začněmež!


Tento článek představuje univerzální open-source instalátor WarpIN, který má za cíl nahradit starší a méně schopný instalátor z produkce firmy IBM a stát se všeobecně používaným instalátorem na platformě OS/2. Článek se zaměřuje zejména na problematiku vytváření instalačních archivů pro tento program, včetně členění na balíky, psaní instalačního skriptu a manipulace s Workplace Shellem. Prezentované postupy jsou demonstrovány na reálném příkladu instalačního archivu knihovny J-Sim.

Popis instalátoru WarpIN

WarpIN je univerzální instalátor, vyvíjený pro operační systém OS/2 skupinou programátorů okolo serveru Netlabs. WarpIN běží v grafickém módu, potřebuje tudíž Presentation Manager. Pro specifické úkoly během instalace softwaru potřebuje také běžící Workplace Shell, není to však vždy nezbytně nutné. WarpIN je distribuován pod licencí GPL (GNU General Public Licence), každý si ho tedy může stáhnout zdarma a libovolně upravit za podmínky, že upravené zdrojové texty budou dále k dispozici.

Vývoj začali Jens Bäckman a Ulrich Möller, nyní do týmu patří ještě Teemu Ahola a Cornelis Bockemühl. Hlavní stránka projektu se nachází na serveru Netlabs (WWW), odkud vede odkaz na XWp. Zde je možno WarpIN stáhnout, stejně jako další dílo Ulricha Möllera -- XWorkplace.

WarpIN je schopen při instalaci softwaru plně nakonfigurovat OS/2 systém, včetně změn v souboru CONFIG.SYS, registrace tříd Workplace Shellu, vytvoření složek a objektů různých typů apod. K vlastnostem WarpINu patří i funkce Undo, kontrola závislosti balíků, spouštění skriptů psaných v Rexxu (součást archivů) i externích programů.

Předpokládá se, že pokud je WarpIN jednou na počítač nainstalován, už navždy tam nainstalovaný zůstane. Uživatelé si pak obstarávají pouze instalační archivy pro tento instalátor. Tyto archivy obsahují výhradně instalovaný software, nikoliv instalátor samotný, což samozřejmě podstatně snižuje velikost stahovaných dat. O každém nainstalovaném programu si WarpIN uchovává množství informací. Tyto informace může využít například uživatel při kontrole nainstalovaného softwaru nebo samotný instalátor při odinstalovaní některého programu.

Princip fungování

Jak již bylo řečeno, samotný instalátor je třeba do systému nainstalovat před tím, než je možno instalovat balíčky pro něj určené. Stačí si z XWp stáhnout poslední vydání WarpINu (v době psaní tohoto článku je to verze 1.0.1) v podobě jednoho EXE souboru a ten spustit. WarpIN se nainstaluje do zadaného adresáře, kde zabere cca 1.2 MB. WarpIN si asociuje příponu WPI (Přípona WPI patří intalačním archivům určeným pro WarpIN.), takže od této chvíle stačí kliknout myší na libovolný WPI soubor a software v něm obsažený se začne za asistence uživatele instalovat.

Jak bude řečeno v kapitole Typy archivů, WarpIN lze nainstalovat také spolu s dodávaným programem, pokud na cílovém systému ještě není. V takovém případě má instalační archiv příponu EXE. Po spuštění takového instalačního souboru se nejdříve nainstaluje WarpIN (v případě tzv. plné instalace) a následně instalovaný software.

Informace o veškerém instalovaném softwaru jsou uloženy v tzv. globální databázi WarpINu, což je soubor DATBAS_C.INI ve formátu OS/2 inicializačních souborů, podobně jako například OS2.INI nebo OS2SYS.INI. V databázi jsou uloženy následující informace:

  1. cesta, kam byl software nainstalován, a seznam všech zkopírovaných souborů, včetně jejich dat, jak byly uloženy v instalačním archivu, což WarpINu umožňuje zjistit, zda nebyly soubory náhodou po instalaci bez jeho vědomí přepsány;
  2. datum instalace;
  3. všechny změny provedené v souboru CONFIG.SYS, aby mohl být tento soubor v případě deinstalace obnoven do původního stavu;
  4. všechny změny provedené v systémových INI souborech (implicitně to jsou OS2.INI a OS2SYS.INI) -- změny mohou být opět vráceny;
  5. všechny vytvořené objekty Workplace Shellu -- při odinstalování mohou být zrušeny;
  6. všechny nainstalované nebo nahrazené třídy Workplace Shellu -- mohou být odregistrovány.

Na následujících obrázcích je ukázáno, jak WarpIN zobrazuje informace uživateli. V levé části obrazovky jsou zobrazeny všechny nainstalované aplikace a jejich balíky (O členění na balíky bude řeč v kapitole Složení archivu). Jejich zobrazení lze přepínat -- lze použít stromové nebo lineární (ploché) zobrazení. V pravé části jsou umístěny detailnější informace o nainstalovaném softwaru. Opět lze přepínat mezi dvěma zobrazeními -- zobrazením všech nainstalovaných souborů (včetně jejich charakteristik) a zobrazením všech akcí, které se musejí provést při případné deinstalaci. Sem patří například modifikace souboru CONFIG.SYS, smazání objektů WPS, zastavení procesu apod.

Lineární zobrazení aplikací

Lineární zobrazení aplikací a jejich balíků spolu se seznamem souborů balíku Health Widget aplikace XWorkplace. Všechny balíky aplikace XWorkplace jsou zkontrolovány a nebyly u nich nalezeny žádné chyby.

Lineární zobrazení aplikací

Opět lineární zobrazení aplikací a jejich balíků, nyní jsou ale v pravém panelu zobrazeny akce, které je třeba provést při odinstalování balíku Kernel aplikace XWorkplace.

Stromové zobrazení aplikací

Stromové zobrazení aplikací a balíků spolu se seznamem souborů.

Stromové zobrazení aplikací

Stromové zobrazení aplikací a balíků spolu se seznamem akcí při odinstalování.

WarpIN umožňuje uživateli zkontrolovat integritu již nainstalovaného softwaru. Pod tímto pojmem se rozumí, že software se nachází v tom stavu, v jakém ho WarpIN nainstaloval. Tedy nebyl smazán žádný soubor, nastavení v souboru CONFIG.SYS ani v INI souborech nebyla změněna, objekty Workplace Shellu existují apod. Zkontrolovat lze jak celou aplikaci, tak i její jednotlivé balíky.

Aplikaci nebo její balíky lze kliknutím myši také odinstalovat. V tom případě se smažou všechny nainstalované soubory a vezmou se zpět všechny konfigurační změny provedené při instalaci.

Pokud uživatel provedl záměrně nějaké změny na nainstalovaném softwaru bez vědomí instalátoru nebo software dokonce ručně smazal, začne instalátor hlásit při kontrole chyby. Aby uživatel zamezil těmto chybovým hlášením, lze WarpIN přinutit, aby informace o nainstalované aplikaci nebo jejím balíku (balíkách) zapomněl. To se hodí zejména v případě ručního zásahu do instalovaného softwaru, může to být ovšem značně nebezpečné, pokud je software řádně nainstalovaný. Po smazání konfiguračních informací se totiž WarpIN přestane o nainstalovanou aplikaci starat a veškeré změny (deinstalaci) musí uživatel provést ručně, včetně editace CONFIG.SYSu a INI souborů. To může být značně namáhavá práce, navíc některá nastavení, zejména ta v INI souborech, nemusí uživatel vůbec objevit. Proto je třeba tuto funkci používat s rozmyslem.

Módy činnosti

Nejběžnější použití instalátoru WarpIN spočívá v poklikání na nějaký stažený instalační archiv, který má příponu WPI. Pokud ještě nebyl nainstalován žádný balík z tohoto archivu, WarpIN se spustí v tzv. plně instalačním módu. Objeví se okno s úvodním pozdravem a uživatel pak klikáním na tlačítko Další prochází nastavením instalace, vybírá balíčky, nastavuje cesty apod. Následující obrázky ukazují, jak taková typická instalace vypadá.

Spuštění

Nejdříve je třeba poklepat myší na stažený WPI soubor, čímž dojde ke spuštění WarpINu. Soubor se může nacházet v jakékoliv složce.

Úvodní obrazovka

Po spuštění uvítá uživatele úvodní obrazovka instalované aplikace, která by ho měla stručně informovat.

Obrazovek může být i více

Těchto obrazovek může být i více, ale jedna nebo dvě obvykle stačí.

Text typu README

Pokud potřebujeme uživateli ukázat delší část textu, i to jde. Text, který může být formátovaný podobně jako HTML dokument, se pak zobrazí v rámu s posuvným ovladačem. Ve skutečnosti se pro formátování takového textu používá malá podmnožina HTML značek.

Výběr balíků

Pokud už je uživatel dostatečně informován a souhlasí s podmínkami naší tolerantní licence, může být připuštěn k výběru balíků. U každého balíku lze zvolit, zda se má instalovat či ne, dále lze zvolit i cílový adresář. Uživatel má k dispozici i krátkou nápovědu ke každému balíku po najetí myši na jeho jméno a seznam volného místa na všech dostupných discích.

Po výběru požadovaných balíčků se WarpIN obvykle otáže, zda má vytvořit všechny potřebné adresáře (které obvykle neexistují). Poté již následuje kopírování souborů, změny nastavení systému a manipulace s Workplace Shellem. Na závěr je uživatel informován o úspěšné instalaci a poté se program ukončí. Pokud nebyly požadovány změny CONFIG.SYSu, lze začít aplikaci ihned používat, v opačném případě je nutný reboot počítače. Obecně lze doporučit, aby se programátoři aplikací snažili změnám souboru CONFIG.SYS vyhnout a jeho změny prováděli, jen pokud je to nevyhnutelné. Většina aplikací pro OS/2 je totiž konfigurovatelná i bez CONFIG.SYSu.

Pokud WarpIN zjistí, že některý balíček (nebo dokonce všechny) instalované aplikace je již nainstalován, bude se chovat zcela normálně (To jest, rozeběhne instalační proces.), navíc ale nabídne uživateli následující možnosti:

  • Instalovat -- I když je balíček již nainstalovaný, WarpIN ho nainstaluje ještě jednou. Nějaké soubory budou tedy přepsány.
  • Nechat tak, jak je -- Balíček nebude znovu nainstalován, ale nebude ani odinstalován.
  • Odinstalovat -- Balíček bude odinstalován ze systému a databáze instalátoru bude aktualizována. Budou vymazány všechny soubory balíčku a proveden návrat systémové konfigurace do stavu před jeho instalací.

Parametry při spouštění z příkazové řádky

Při spouštění instalátoru WarpIN lze použít následující parametry:

warpin [-FIU] [archiv]

Pokud zadáme jméno souboru s instalačním archivem, WarpIN ho otevře a začne instalovat stejně jako kdyby byl spuštěn poklepáním myší na ikoně archivu. Od verze WarpINu 0.9.14 lze vytvářet i samoinstalovatelné instalační archivy, které mají příponu EXE. Ty lze nainstalovat jednak přímým spuštěním (z příkazové řádky, myší z WPS), lze je ale také zadat jako parametr místo souboru WPI.

Pokud není zadán žádný archiv, WarpIN přejde do tzv. databázového módu, kdy může uživatel provádět různé údržbové práce, jako je např. deinstalace, kontrola nainstalovaného softwaru apod.

WarpIN podporuje navíc i tyto přepínače, které mírně modifikují jeho chování:

  • Pokud není zadán žádný přepínač, WarpIN provede ihned po startu test, zdali už není naistalován. Pokud zjistí že ano, otáže se uživatele, zda by měla být nalezená instalace updatována nebo deaktivována.
  • Přepínač -F (force -- donutit) určuje, že případná nalezená instalace WarpINu bude vždy deaktivována a navíc budou vytvořeny objekty Workplace Shellu pro běžící instalaci. To lze využít, pokud došlo k nepředvídané chybě v objektech Workplace Shellu a již nefunguje automatické spouštění WarpINu při dvojitém kliknutí myší.
  • Přepínač -I (ignore -- ignorovat) se použije tehdy, pokud si přejeme vynechat počáteční test. Lze použít například v situacích, kdy právě neběží Workplace Shell.
  • Přepínač -U (upgrade -- upgradovat) určuje, že WarpIN vždy přepíše již existující instalaci sebou samým, pokud taková instalace existuje. Pokud neexistuje, dojde k chybě.