< Programozás

Telepítőkészítés

Szerző: Sallai András

Copyright © 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 NSIS. Az NSIS használható Windows és Linux rendszereken egyaránt.

A másik elterjedt telepítőkészítő az 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.

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.

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

NSIS (Másik névtér)

http://www.jrsoftware.org/

https://gist.github.com/amake/3e7194e5e61d0e1850bba144797fd797