Dnes se budeme zabývat činností, kterou dobře zná každý z nás. Nahlédneme do možností instalace aplikací ve Windows. Nemusíte mít strach, že se budeme učit klikat na notoricky známý sled tlačítek Další, Další, Další, Dokončit. Podíváme se totiž společně na celou věc trošku z jiné stránky a vezmeme instalaci aplikací do vlastních rukou.
Instalace v grafickém rozhraní
Můžete se setkat s několika způsoby instalace aplikací. První a nejznámější je výše naznačený postup, kdy spustíte grafickou verzi instalátoru a postupně se proklikáváte jeho dialogy. Je-li třeba, upřesníte některé základní parametry, jako například složku, kam si přejete program nainstalovat, nebo zda se má na ploše vytvořit zástupce. V posledních kroku se s vámi instalátor rozloučí a vy můžete program poprvé spustit. Každou aplikaci je třeba alespoň lehce nastavit, takže i to bude jistě jeden z kroků. Některé aplikace navíc vyžadují akceptování smlouvy EULA (End User License Agreement) nebo vám nabídnou účast v programu pro zlepšení kvality daného software. Doposud byla vaše pozornost odváděna na instalaci a nastavení aplikace samotné, a až nyní jí můžete skutečně začít používat. Nicméně pokud instalujete pouze malé množství programů, může tento postup být poměrně časově efektivní.
Portable aplikace
Nejste-li příznivci instalování, pak možná provozujete své aplikace v takzvané portable verzi. Funguje to tak, že si stáhnete upravenou verzi aplikace tak, aby nevyžadovala instalaci, zkopírujete ji na USB flash disk a veškeré softwarové vybavení si nosíte s sebou. I to je samozřejmě zajímavé řešení. O tom snad ale někdy příště.
Tichá instalace
Pojďme rovnou k náplni tohoto článku. Řeč bude o tiché instalací aplikací. Tichá v tom slova smyslu, že automaticky běží na pozadí a neobtěžuje uživatele žádnými dialogy. My ji pouze skriptem z příkazového řádku zadáme požadované parametry. Vše ještě rozšíříme o automatické nastavení aplikací a lehkou údržbu systému. Výhodou tiché instalace je její rychlost a podpora naprosté většiny dnešních aplikací. V případě nasazení většího množství aplikací na větší počet počítačů prakticky nemá konkurenci. Patrně jedinou nevýhodou je vyšší časová náročnost přípravy instalačního skriptu.
Nejčastějšími příponami instalačních souborů bývají .exe a .msi. Software je distribuován uvnitř těchto balíčků a celou instalaci programu řídí takzvaný instalátor. V případě .msi je jím Windows Installer. U spustitelných .exe souborů se můžete setkat s několika různými instalátory. Po bližším ohledání zjistíte, že jde zpravidla o InstallShield, Inno Setup, případně nějaký další.
Typ instalátoru nám jasně říká, jaké parametry lze pro tichou instalaci aplikace použít. Stručný seznam instalátorů a jim odpovídajících parametrů najdete v této tabulce. Velmi dobrým zdrojem je také server http://www.appdeploy.com/.
Instalátor | Parametry |
---|---|
InstallShield | setup.exe /s |
Windows Installer | msiexec /i setup.msi /qn REBOOT=ReallySuppress |
Inno Setup | setup.exe /VERYSILENT |
Neznámý | setup.exe /? |
V případě, že nevíte, jaký instalátor výrobce aplikace použil, můžete si veškeré parametry nechat vypsat zadáním příkazu setup.exe /? do příkazového řádku Windows. Setup.exe nahraďte správným názvem souboru a případně cestou k němu.
Píšeme skript
Nejnázornější bude malá ukázka, vzhůru do ní. Náš skript [šipka k skript.png] bude postupně volat tiché instalace programů, nastaví Adobe Reader, tak aby se choval podle našich přání a na závěr provede lehkou očistu systému od zbytečností. V průběhu svého běhu bude na příkazový řádek vypisovat informace o stavu instalace, abychom věděli, co se povedlo a kde je naopak něco špatně.
Na začátku si definujme proměnnou Apps, která obsahuje cestu ke složce s instalačními balíčky. Dejme tomu, že jsme je umístili do složky C:\Install.
SET Apps=C:\Install
Pojďme nainstalovat první aplikaci. Bude jí například Mozilla Firefox. Místo %Apps% se vloží cesta, kterou jsme do proměnné uložili v předchozím kroku a spustí se instalátor s parametrem pro tichou instalaci.
“%Apps%\Firefox Setup 3.0.10.exe” /S
Firefox po nainstalování vyžaduje vytvoření nového profilu. To zařídíme tímto příkazem. Všimněte si proměnné %ProgramFiles%, která je systémová (je automaticky nastavena systémem) a ukrývá v sobě cestu ke složce „Program Files“.
“%ProgramFiles%\Mozilla Firefox\firefox.exe” -CreateProfile “default
Požadujete-li nastavit Firefox jako výchozí prohlížeč zadejte i tento příkaz.
“%ProgramFiles%\Mozilla Firefox\firefox.exe” -setDefaultBrowser -silent
Tato část kódu ve skriptu kontroluje po dokončení instalace každé aplikace, zda instalace proběhla v pořádku. Pokud je něco špatně, vypíše „ERROR“.
IF ERRORLEVEL 1 ECHO ERROR
IF NOT ERRORLEVEL 1 ECHO OK
Pro přehlednost výstupu oddělíme důležité části prázdným řádkem.
ECHO.
Jako další nainstalujeme Adobe Reader. Výsledek instalace můžeme ovlivnit mnoha parametry. Instalátoru zde říkáme, že si po dokončení nepřejeme provádět restart počítače a že instalujeme Reader všem uživatelům počítače. Také chceme automaticky akceptovat smlouvu EULA a zakázat automatické spuštění Readeru po dokončení instalace.
“%Apps%\Acrobat\AdbeRdr910_en_US_Std.exe” /sAll /rs /l /msi”/qn /norestart ALLUSERS=1 EULA_ACCEPT=YES SUPPRESS_APP_LAUNCH=YES”
Při prvním spuštění by nás ovšem Reader přivítal dotazem, zda se chceme zúčastnit programu pro zlepšení software. Tento dialog můžeme zrušit přidáním tohoto příkazu do skriptu.
REG ADD “HKCU\Software\Adobe\CommonFiles\Usage\Reader 9 ” /t REG_DWORD /v OptIn /d 0 /f
Ukažme si, že to jde i jednoduše. Typickým příkladem aplikace využívající Windows Installer je komprimační nástroj 7zip. Tichou instalaci, která mimochodem trvá pouze několik vteřin, zahájíme takto.
msiexec /i “%Apps%\7z465.msi” /qn
Pro správu obrázků si nainstalujme XnView.
“%Apps%\xnview\XnView-win.exe” /verysilent
Plugin Microsoft Silverlight nainstalujeme takto.
“%Apps%\Silverlight.2.0.exe” /q
Zjednodušeně si ukažme, jak přímo skriptem vyčistit ikony na ploše. Acrobat jsme instalovali všem uživatelům, proto je zástupce umístěn jinde. XnView se nainstalovalo pouze aktuálnímu uživateli, a tak ikonu najdete v jeho uživatelském plofilu. Cesty se mohou mírně lišit na Windows XP a Windows Vista.
DEL “%SystemDrive%\Users\Public\Desktop\Adobe Reader 9.lnk”
DEL “%UserProfile%\Desktop\XnView.lnk”
Kompletní skript včetně několika vzorových aplikací si můžete stáhnout tady. Samozřejmě také můžete spouštět jednotlivé příkazy ručně přímo v příkazovém řádku. Pro účely testování doporučuji využít Microsoft Virtual PC a vytvořit si virtuální stroj.
Tento článek byl napsán pro časopis Computer.
Celkem zajimavy clanek, toto tema bych byt Vami rozvinul, klidne i na pokracovani, pro administraci vetsich prostredi jsou skripty nezbytne, a uvital bych podrobnejsi vysvetleni prikazu a parametru na ruznych prikladech.
Jinak to mate dobre a srozumitelen popsane, dekuji.
R
Dobrý den,
děkuji za pochvalu a za tip. Jsem rád, že Vám byl článek užitečný. Chuť napsat další pokračování by byla, ovšem v poslední době mi nezbývá příliš času, který bych tomu mohl věnovat. Snad se to brzy zlepší a objeví se tu další díl.
Mějte se pěkně,
Jiří Brejcha
@roman doležal
on je problém v tom že pokud se výrobce rozhodne tak se program dost špatně instaluje skrytě. největší potíž je při použití neznámých (nejlépe vlastních) instalačních engine. příkladem budiž Google. na jednu stranu používá MSI balíčky u Google Earth ale na druhou stranu u Google Chrome už používá vlastní installer a ještě plnou verzi instalace neustále “schovává”.
při administraci větších prostředí se používá GPO. pokud váš dodavatel neposkytuje váš SW s možností automatického nasazení na stanicích tak je asi něco špatně na jeho straně (asi si neuvědomuje že ne každý má čas na instalaci sw na každé stanici jednotlivě).
Ahoj Michale,
souhlasím s tebou, s některými specifickými instalátory je to občas celkem veselé. Zlaté MSI balíčky.
Mimochodem máš nějaký osvědčený postup na “přebalování” do MSI balíčků? Já zase tak často nepřebaluji, takže jsem si vystačil s testovací verzí Advanced Installeru. Kdybys měl psavou náladu, chuť a čas se podělit o své zkušenosti, dej mi vědět. Může tu klidně vyjít i tvůj článek;)
Hodně štěstí při psaní knížky,
Jirka
Díky za článek, je opravdu přínosný a přehledný. Zrovna jsem se potýkal s tichou instalací FF a acrobatu :)
A též bych uvítal více podrobností o jednotlivých parametrech..
Poznámka ke zvážení: co dodat do skriptu kontrolu na to, zda již program není nainstalován? Líbí se mi, když pak můžu jít a pustit ho kdekoli, i na starém PC, a skript mi dohraje jen ty programy, které tam chybí.
PS: mám jednu velkou výtku ke stránkám – píšu tohle už podruhé, zapomněl jsem vyplnit povinné údaje u svého komentáře a přišel jsem o celý text! Vážně jsem uvažoval, že než to psát znova, úplně se na to vybodnu..
Dobrý den,
mám pro Vás dobrou zprávu, dalších článků o deploymentu určitě přibyde. Prozatím nebudu prozrazovat detaily, ale chystáme s kolegou český portál zaměřený právě na SW deployment. V příštích týdnech se o tom ještě určitě zmíním tady na svém blogu.
Díky za tip ke skriptu. Při psaní dalších dílů se to pokusím vymyslet.
Komentáře používám v té podobě, jak je nabízí systém WordPress, který používám. Změna by znamenala úpravu kódu, na kterou mi teď bohužel nezbývá příliš času. Pokusím se zatím alespoň nějak zvýraznit povinné údaje.
Příjemný víkend,
Jiří Brejcha
http://www.jiribrejcha.net
Ahoj,
článek mě velmi zaujal, ale jako několika přede mnou reagujícím mi chyběl podrobnější popis parametrů, případně zdroj, kde se těchto parametrů dopátrat protože, zadáním příkazu “setup.exe /?” jsem nikdy zpět parametry instalace nedostal.
Jinak děkuji za článek.
@Jan Doubrava
bohužel musíte upřesnit o jaký SW se jedná. přístup ke zjištění jak se dá sw instalovat automatizovaně je popravdě dost individuální. žádný univerzální postup vyloženě neexistuje.
@Jirka Brejcha
tak já si už dělám vlastní MSI balíčky a vlastní řešení k automatizované instalaci programů. jiná cesta bohužel není.
@Jan Doubrava
Velmi pěknou databázi parametrů instalátorů najdete na serveru http://www.appdeploy.com/. Stačí zadat jméno produktu a rozbalit sekci, která vás zajímá (např. Command Lines).