[[oktatas:programozás|< Programozás]] ====== Telepítőkészítés ====== * **Szerző:** Sallai András * Copyright (c) Sallai András, 2014, 2015 * Licenc: GNU Free Documentation License 1.3 * Web: http://szit.hu ===== Bevezetés ===== Az elkészült szoftvereinkhez készíthetünk telepítőt. De mi is voltaképpen a telepítő. A telepítő hagyományos értelemben egy újabb program, ami gondoskodik a célszoftver felmásolásáról adott gépre, szükséges beállításokkal, felhasználói tájékoztatóval, könyvtárválasztással, licencfeltételek elfogadásának felkínálásával. Telepítő minden operációs rendszerre készíthető. A Windows rendszereken ez egy szokásos szoftverterjesztési eljárás. A Unix alapú rendszerek azonban tartalmaznak egy csomagkezelő rendszert. A telepítendő csomag tartalmazza a telepíteni kívánt szoftvert. A csomagkezelőre úgyis tekinthetünk, mint az operációs rendszerbe beépített telepítő. A csomagkezelők működnek parancssorból (dpkg, rpm, apt-get, aptitude) és grafikus felületről (Synaptic). A programok terjesztése nem csak telepítő vagy csomag formájában történik. A futtatható programot, függőségekkel együtt egy egyszerű tömörített fájlban is elhelyezhetjük. Ezt nevezzük telepítést nem igénylő formátumnak is. Ha a programunk egyetlen kicsomagolt könyvtárból is működik, akkor beszélünk "portable" verzióról. ===== Telepítő készítés ===== A telepítőkészítés mindig valamilyen telepítőkészítő programmal történik. Ilyen program, például a **[[http://nsis.sourceforge.net/|NSIS]]**. Az NSIS használható Windows és Linux rendszereken egyaránt. A másik elterjedt telepítőkészítő az **[[http://www.jrsoftware.org/isinfo.php|Inno Setup]]**. Az alap telepítő egy varázslóval könnyen összeállítható. A telepítő elkészítéséhez minimális követelmény a lefordított programon kívül egy licenc állomány elkészítése. Mielőtt nekifogunk a telepítő elkészítéséhez, hozzuk létre egy licenc.txt állományt. El kell döntenünk, hogy a programunk függőségeit -- ezek Windows alatt rendszerint valamilyen .dll kiterjesztésű állományok -- beletesszük-e a telepítőbe, vagy csak figyelmeztetjük a felhasználót, hogy azt külön telepítse. ===== Csomagkészítés ===== A Mac OS X, a BSD és a Linux rendszerek mindig saját csomagformátummal rendelkeznek. A jelentősebb Linux rendszerek két alapvető csomagformátummal rendelkeznek. Ezek: * RPM * DEB Az RPM a jellemzően RedHat vagy SUSE Linux alapú rendszerekre jellemző. A DEB csomag a Debian alapú rendszerekre jellemző, mint Ubuntu, LinuxMint, stb. ===== Egyszerű tömörített fájl ===== A telepítő lehet egy egyszerű tömörített állomány is. Például egy ZIP állomány. Nézzük meg miket szoktunk tenni egy ilyen ZIP fájlba. * futtatható állomány - //program.exe// * függőségek - //konyvtar.dll// * licencfájl - //licence.txt// * leírófájl - //olvasd.txt// - readme.txt * telepítési útmutató //install.txt// * felhasználói dokumentáció - //felhasznaloknak.txt// * fejlesztői dokumentáció - //fejlesztoknek.txt// ===== Inno Setup ===== Az Inno Setup program egy telepítőkészítő. A telepítő leírásához egy scriptet kell készítenünk, amelynek a kiterjesztése: .iss A telepítő elkészítése előtt készítsük a licenc.txt állományt, ANSI kódolással. Az állományban írjuk le milyen feltételek alapján használható a program. {{:oktatas:programozás:telepitokeszites.png?400|}} A program indítása után egy üdvözlő párbeszédablak fogad minket. Az üdvözlő párbeszédablakban lehetőség van választani egy új fájl készítése és egy meglévő szerkesztése között. Az új fájl esetén is két lehetőségünk van. Egy üres script fájl készítése, vagy varászlóval készített script fájl. Ha most használjuk először a telepítőkészítőt, akkor jó választás a varázsló. A varázsló választásához a következő feliratú rádiógombot kell választania: * Create a new script file using the Script Wizard Menjünk végig a varázslón, értelemszerűen kitöltve azt. {{:oktatas:programozás:innosetup_01_welcomeablak.png|}} {{:oktatas:programozás:innosetup_02_alkalmazasinfo.png|}} {{:oktatas:programozás:innosetup_03_alkalmazaskonyvtar.png|}} {{:oktatas:programozás:innosetup_04_alkalmazasallomany.png|}} {{:oktatas:programozás:innosetup_05_alkalmazasikon.png|}} {{:oktatas:programozás:innosetup_06_alkalmazasdokumentumok.png|}} {{:oktatas:programozás:innosetup_07_setupnyelve.png|}} {{:oktatas:programozás:innosetup_08_forditobeallitasok.png|}} {{:oktatas:programozás:innosetup_09_innosetupelofeldolgozo.png|}} {{:oktatas:programozás:innosetup_10_befejezes.png|}} {{:oktatas:programozás:innosetup_11_forditasparbeszedablak.png|}} {{:oktatas:programozás:innosetup_12_elkeszultscript.png|}} A varászló a végén ehhez hasonló scriptet készít: ; Script generated by the Inno Setup Script Wizard. ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! #define MyAppName "Kero" #define MyAppVersion "1.0" #define MyAppPublisher "Nagy József" #define MyAppURL "http://www.zold.and" #define MyAppExeName "Kero.exe" [Setup] ; NOTE: The value of AppId uniquely identifies this application. ; Do not use the same AppId value in installers for other applications. ; (To generate a new GUID, click Tools | Generate GUID inside the IDE.) AppId={{99BC5003-A6D8-43FA-8A38-C3AA0BE8B001} AppName={#MyAppName} AppVersion={#MyAppVersion} ;AppVerName={#MyAppName} {#MyAppVersion} AppPublisher={#MyAppPublisher} AppPublisherURL={#MyAppURL} AppSupportURL={#MyAppURL} AppUpdatesURL={#MyAppURL} DefaultDirName=c:\{#MyAppName} DefaultGroupName={#MyAppName} LicenseFile=Z:\mnt\serverhome\Oraimunka_2014-2015\NyariGyak\publicMake\Kero_Setup\licenc.txt InfoBeforeFile=Z:\mnt\serverhome\Oraimunka_2014-2015\NyariGyak\publicMake\Kero_Setup\olvasd.txt OutputDir=Z:\mnt\serverhome\Oraimunka_2014-2015\NyariGyak\public OutputBaseFilename=Kero_Setup Compression=lzma SolidCompression=yes [Languages] Name: "english"; MessagesFile: "compiler:Default.isl" Name: "hungarian"; MessagesFile: "compiler:Languages\Hungarian.isl" [Tasks] Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked [Files] Source: "Z:\mnt\serverhome\Oraimunka_2014-2015\NyariGyak\publicMake\Kero_Setup\Kero.exe"; DestDir: "{app}"; Flags: ignoreversion ; NOTE: Don't use "Flags: ignoreversion" on any shared system files [Icons] Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}" Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon [Run] Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent A scriptet a későbbiekben átírhatjuk, újrafordíthatjuk. ===== Linkek ===== * [[oktatas:programozás:programok:nsis|NSIS]] (Másik névtér) * http://www.jrsoftware.org/ * https://gist.github.com/amake/3e7194e5e61d0e1850bba144797fd797