Umíme to s Delphi: 84. díl – tvorba instalačních balíků

Dnešní díl zdánlivě narušuje běžící řadu databázových témat. Naučíme se totiž vytvářet instalační balíky a šířit aplikace napsané v Delphi. Uvnitř článku také najdete popis důvodů, proč jsme přerušili popis databází a odbočili k instalátorům: instalace databázových aplikací je předmětem mnoha vašich dotazů a vysvětlení problematiky instalací od základu je zřejmě účelné.
V předchozích dílech seriálu jsme se postupně zabývali různými databázovými tématy. Dnes učiníme Cimrmanovský úkrok stranou a naučíme se vytvářet instalační balíky, které nám umožní šířit a distribuovat aplikace napsané v Delphi. Od tohoto problému se posléze plynule přesuneme zpět k databázím. Ostatně – nejen databázemi živ je člověk a mezi čtenáři seriálu jsou určitě tací, kteří o databáze tolik nestojí; nemůžeme je tedy znechutit několikaměsíčním výlučným popisem databází...:)

Instalační balíky – ano či ne?

Předpokládejme, že jsme se úspěšně překlenuli přes nejobtížnější krok – naprogramování aplikace. Dejme tomu, že výsledná aplikace bezproblémově běží a stojíme před úkolem umožnit uživatelům co nejkomfortnější pořízení (např. stažení) aplikace a její instalaci.

Pokud je naše aplikace tvořena jediným spustitelným soborem *.exe, nebylo by teoreticky nutné lámat si hlavu s nějakým instalátorem: stačilo by zkopírovat tento spustitelný soubor na cílové umístění. Některé malé aplikace tento způsob „instalace“ používají – prostě si stáhnete a zkopírujete spustitelný soubor: chcete-li aplikaci spustit, jednoduše na soubor poklepete ve Windows/Total Commanderu nebo v Průzkumníku.

Tento způsob je velmi jednoduchý a mnozí uživatelé jej jistě vítají především z toho důvodu, že mají nad aplikací kontrolu a vědí, že jim „nezanese“ systém mnoha megabyty jakýchsi dat, která budou kamsi nakopírována a která budou sloužit k jakémusi (pochybnému) účelu.

Na druhou stranu bychom si ale měli uvědomit, že žijeme v době, kdy počítač používají i neznalí uživatelé – a navíc mnozí znalí jsou natolik zhýčkaní prostředím Windows, že spuštění aplikace jinak než přes nabídku Start nebudou schopni realizovat: nemůžete přece chtít po sekretářce, aby kdesi v Průzkumníku prohledala pevný disk, našla nějakou cílovou složku a v ní spustitelný soubor. Aby nedošlo k nedorozumění: předchozí větu nemíním jako útok na sekretářky, míním ji jen jako ilustraci skutečnosti, že pokud nebudeme dbát na uživatelský komfort, přijdeme o mnoho uživatelů.

Jinak řečeno: doporučuji vytvářet instalační balíky pro všechny aplikace, a to i pro ty jednodušší. Instalační balík totiž v podstatě automaticky vytvoří potřebné položky v nabídce Start, zkopíruje aplikaci včetně všech nutných souborů a nápověd do požadovaného umístění, zavede příslušné záznamy do registru Windows a vůbec dá aplikaci punc vyšší třídy. Končené rozhodnutí, zda se zdržovat vytvářením instalačního balíku, je ale samozřejmě na vás.

Instalační balíky – jak na to?

Proces tvorby instalačního balíku je podobný pro všechny druhy aplikací – alespoň ve své základní podobě. Pro databázové aplikace, internetové aplikace (a některé další nadstandardní problémy typu „instalace ovládacích prvků ActiveX) je nutné provést některé další kroky, které si vysvětlíme později. Nejprve se tedy vrhneme na obecná témata související s instalací většiny programů.

Jak pravděpodobně již víte, pro tvorbu instalačních balíků existuje řada specializovaných nástrojů – budeme je pro účely dalšího textu označovat jako instalátory. Pomocí instalátoru je možné projít kompletním procesem tvorby instalačního balíku, obvykle bez nutnosti psát jakýkoliv programový kód. Vše si později ukážeme prakticky.

Nejprve si povíme, které instalátory máme k dispozici. Instalátorů existuje celá řada, ne všechny jsou však vhodné pro aplikace napsané v Delphi. Dříve byla situace taková, že musel být použit pouze instalátor, který měl certifikaci od firmy Borland/Inprise (poněkud zastaralý seznam těchto instalátorů je k dispozici u Borlandu). Jsem si jist, že někde je k dispozici aktualizovaný seznam, ale přiznávám, že jsem po něm příliš nepátral, a to především z důvodu popsaného v následujícím odstavci).

Dnes není nutné kontrolovat certifikaci instalátoru a stačí se přesvědčit, že zvolený instalátor je postaven na technologii MSI (Microsoft Windows Installer). V drtivé většině případů však stejně použijeme instalátor InstallShield Express, který je dodáván přímo na instalačních CD s Delphi.

Máte-li dobrý důvod zvolit jiný instalátor, dbejte jen na to, aby byl certifikován Borlandem a nebo byl postaven na technologii MSI. Pokud takový důvod nemáte, použijeme společně InstallShield Express, jehož použití si vysvětlíme od úplného začátku.

InstallShield Express

InstallShield Express je instalátor dodávaný přímo s Delphi a je samozřejmě certifikován nejen pro použití s „čistým“ Delphi, ale také s Borland Database Engine. Kromě toho je založen na technologii MSI, takže splňuje všechny myslitelné podmínky úspěchu :)

Když instalujeme vývojové prostředí Delphi, není InstallShield Express automaticky instalován. Chceme-li jej využívat, musíme jeho instalaci zajistit ručně. Instalační proces společně projdeme níže. Ještě předtím si však vysvětlíme několik nezbytných teoretických informací souvisejících s tvorbou instalačních balíků.

Trocha teorie

Co je vlastně obsahem instalačního balíku? Kromě nezbytného spustitelného souboru *.exe obsahuje následující druhy souborů:

  • aplikační soubory: programové soubory *.exe a *.dll, soubory nápovědy *.hlp, *.cnt, *.toc a jiné, soubory s databázovými a dalšími údaji – např. *.dbf, *.mdx, *.dbt, *.ndx, *,db, *.mb, *.val a řada dalších
  • soubory balíků (packages): soubory *.bpl a *.bcp. Pokud aplikace používá běhové balíky (run-time packages), je nutné šířit soubory s těmito balíky společně s aplikací.
  • připojené moduly: připojené moduly slouží k zajištění podpory právě takových funkcí/oblastí, které v aplikaci vyžadujeme. Připojené moduly mohou být použity právě s instalátory založenými na MSI, což je jedním z důvodů, proč je bezproblémová třeba podpora BDE při použití takového instalátoru. Příklady: pro podporu ADO slouží modul adortl70.bpl, pro podporu BDEClientDataSet se používá bdecds70.bpl, pro poporu technologie DataSnap používáme dsnap70.bpl, pro podporu dbExpress se používá dbexpress70.bpl apod. Mezi různými moduly existují závislosti, proto je pravděpodobné, že bude do aplikace připojeno více modulů, než zvolíte.
  • ovládací prvky ActiveX: soubory *.ocx. Komponentami ActiveX jsme se v našem seriálu dosud nezabývali, proto jen naznačme, že přestože je zapouzdření (obal) komponenty přilinkován do spustitelného souboru aplikace, soubor *.ocx musí být stejně šířen s aplikací. Podrobnosti poznáme v některém z příštích dílů seriálu.
  • další podpůrné aplikace: s aplikací je někdy nutné šířit další podpůrné aplikace, bez nichž by funkčnost naší aplikace nebyla dostatečná. Příkladem může být třeba u databázových aplikací používajících InterBase utilitu ServerManager, která administruje databáze InterBase a zajišťuje přístup uživatelů a bezpečnost. Při šíření takových podpůrných aplikací je ovšem nutné konzultovat jejich licenční podmínky, abychom se nedostali za hranici legální činnosti.

Pro nás je ovšem podstatné, že všechny shora uvedené druhy souborů je možné připojit do aplikace pomocí vhodného instalátoru.

Specifickou třídou aplikací jsou databázové projekty. Uvedeme si některé jejich odlišnosti a specifika.

Instalační balíky pro databázové aplikace

Aplikace přistupující k databázím samozřejmě kladou vyšší nároky na instalační proces než aplikace, u nichž teoreticky stačí zkopírovat spustitelný soubor na pevný disk cílového počítače. Vzhledem k faktu, že databázový přístup je obvykle realizován zvláštním (samostatným) databázovým strojem (serverem) a ten je realizován soubory, které nelze prostě přilinkovat do spustitelného souboru aplikace.

Situace je navíc poněkud komplikovanější tím, že prakticky pro každý způsob přístupu k datům (ADO, BDE, dbExpress, Interbase) se liší kroky nutné pro zpřístupnění aplikace na hostitelském počítači. Bez ohledu na konkrétní platformu musíme ovšem vždy zajistit, že příslušné programové vybavení bude na počítači umístěno a že aplikace dokáže s databází bez problémů komunikovat.

Podrobnými postupy pro jednotlivé databázové platformy se budeme zabývat později. Nyní jen naznačme základní způsoby řešení problémů.

Databázové aplikace používající klientské datové sady (clien datasets) jako např. TClientDataSet vyžadují připojit midaslib.dcu při statickém linkování nebo Midas.dll.

Databázové aplikace pracující pomocí technologie ADO vyžadují ke svému provozu instalaci MDAC verze 2.1 nebo vyšší. MDAC je automaticky instalován např. s Windows 2000 a novějšími nebo s Internet Explorerem 5 a novějším. Kromě toho je ovšem nutné zajistit přítomnost ovladačů pro konkrétní databázový server, jenž má být použit.

Při šíření aplikací pracujících s platformou Interbase musím být na cílovém počítači instalován klient databáze Interbase (např. Interbase Client). Aplikace též vyžaduje, aby byly dostupné soubory gd32.dll a interbase.msg. Komponenty Interbase komunikují přímo s rozhraním zmíněného klienta Interbase a nevyžadují žádné dodatečné ovladače.

Je zřejmé, že kromě výše zmíněných technologií se můžeme dostat do situace, v níž jsme nuceni pracovat s databázovými servery (technologiemi) jiných výrobců. V tom případě je nutné prostudovat dokumentaci konkrétního výrobce.

InstallShield Express – instalace

Abychom mohli vytvářet instalační balíčky a šířit své aplikace, musíme mít k dispozici vhodný instalátor. Rozhodli jsme se zvolit InstallShield Express, který je dodáván na CD s Delphi. Vrhněme se proto do jeho instalace.

Je stejně jednoduchá jako budoucí instalace našich aplikací vytvořených s jeho pomocí. Vložíme-li CD s Delphi do mechaniky, spustí se pravděpodobně klasický Autorun, takže ze zobrazené nabídky jednoduše zvolíme položku „InstallShield Express Custom Edition for Delphi“ (nebo podobnou v závislosti na verzi a edici Delphi, kterou máme k dispozici).

Potvrdíme a začne instalace. Netrvá zrovna krátkou dobu, ale co bychom pro blaho svých uživatelů neudělali:) V průběhu instalace je nutné čas od času něco potvrdit nebo vybrat, ale myslím, že zde příliš mnoho úskalí hodných popisu.

Instalátor InstallShield Express máme nainstalován. V nabídce Start – Programy přibyla položka InstallShield. Právě z ní je možné instalátor spustit (položka Express – Borland Limited Edition). Nyní si ukážeme, jak vytvořit instalační balík pro aplikaci vytvořenou v Delphi. (Poznámka: zmatení pojmů začíná být úplné – instalátor je nainstalován, proto pojďme vytvořit instalační balík. Věřím však, že jste se neztratili:)) Jen dodejme, že podrobnosti o InstallShield Express naleznete na http://www.installshield.com/express/borland.

Práce s InstallShield Express

1. Připravte si aplikaci (projekt) v Delphi, z níž hodláte vytvořit instalátor.

2. Spusťte InstallShield Express.

3. Z nabídky File zvolte New.

4. V otevřeném okně zvolte cílové umístění vytvářeného instalačního balíku, viz obrázek:

Klepněte pro větší obrázek

5. Potvrďte. Nyní může začít vlastní proces tvorby instalačního balíku. Až v InstallShield Expressu uvidíte, co vás všechno čeká, možná se trochu zaleknete rozsáhlosti celého procesu. Není však proč propadat trudnomyslnosti:

  • většina kroků je velmi jednoduchých a intuitivních,
  • většinu kroků není vůbec nutné provést :)

Na závěr

V příštím dílu budeme společně procházet krok za krokem jednotlivé činnosti a podrobně si budeme vysvětlovat jejich význam a také důležitost. Uvidíte, že vytvoření instalačního balíku nebude nakonec nijak neřešitelný problém, především proto, že u jednodušších aplikací bude možné celou řadu kroků vypustit.

InstallShield Express je poměrně sofistikovaný nástroj pro tvorbu instalačních balíků. Postačuje i potřebám rozsáhlejších aplikací využívajících řadu „nadstandardních“ funkcionalit. Umožňuje ošetřit všemožné instalační problémy a situace, umí si poradit např. s registry, s datovými zdroji ODBC, s připojovanými moduly apod. S jeho pomocí, jak za týden poznáme, lze vytvářet plnohodnotné instalační balíky, jak je známe z mnoha a mnoha aplikací pod Windows.

Diskuze (8) Další článek: Explorer nabízí předregistrace domén v .EU

Témata článku: Software, Windows, Programování, Díl, Instalační balík, Vhodný uživatel, Spustitelný soubor, Instalační CD, Předchozí odstavec, Delphi, Kompletní proces, Aplikace, Krok, Výsledná aplikace, Neřešitelný problém, Tvor, Express, Balík, Podrobný postup, Tvorba, Podobná funkcionalita, DSN, Vhodná technologie


Určitě si přečtěte

Porno insider: Jak virtuální realita vstupuje do filmů pro dospělé

Porno insider: Jak virtuální realita vstupuje do filmů pro dospělé

** Pornografie údajně představuje třetinu internetové obsahu a je technologický tahounem ** Do erotického obsahu postupně zasahuje i virtuální realita ** Kromě vizuálního vjemu se pracuje také na virtuálním uspokojení toho hmatového

Jan Dudek | 29

Pojďme programovat elektroniku: Jak vlastně funguje akcelerometr a gyroskop nejen ve vašem telefonu

Pojďme programovat elektroniku: Jak vlastně funguje akcelerometr a gyroskop nejen ve vašem telefonu

** Každý současný vybavený mobil má akcelerometr a gyroskop ** Jenže co každé z těchto čidel vlastně dělá a jak vypadá? ** Dnes si to vysvětlíme a do hry zapojíme i Airbus A380 a Arduino

Jakub Čížek | 11

Jak horko bude ve vašem městě, až vám bude 80 let? Podívejte se, jak se projeví klimatické změny!

Jak horko bude ve vašem městě, až vám bude 80 let? Podívejte se, jak se projeví klimatické změny!

** Srpen byl třetí nejteplejší za posledních více než sto let ** Bude to ale daleko horší, jak ukazuje aplikace NYT ** V Praze vzroste počet horkých dní na čtyřnásobek

Karel Kilián | 21


Aktuální číslo časopisu Computer

Jak vytvořit a spravovat vlastní web

Velký test herních klávesnic a DVB-T2 tunerů

Vše o formátu RAW

Vybíráme nejlepší základní desku