Gyakorlati alapok II.
A szoftverfejlesztés
Telepítés
Az alábbi fejezet Sallay András informatikatanár oktatási anyagára támaszkodik (www.szit.hu)
Az elkészült szoftvereinkhez készíthetünk telepítőt. De mi is voltaképpen a
telepítő?
Egy újabb program, amely gondoskodik a célszoftver felmásolásáról az adott
gépre a szükséges beállításokkal, a felhasználói tájékoztatóval, a
könyvtárválasztással, a liszencfelté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 nemcsak telepítő vagy csomag formájában történik. A
futtatható programot, függőségeivel 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
programunk egyetlen kicsomagolt könyvtárból is működik, akkor beszélünk
portable (hordozható) verzióról.
A telepítő készítése mindig valamilyen telepítőkészítő programmal történik.
Ilyen program például a NSIS. Az NSIS egyaránt használható Windows-, és
Linux- rendszereken.
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 liszencállomány előzetes elkészítése, e célból tehát hozzunk létre
egy liszenc.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.
A MacOS X, a BSD és a Linux-rendszerek mindig saját
csomagformátummal rendelkeznek. A jelentősebb Linux-rendszerek 2
alapvető csomagformátummal rendelkeznek:
-
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.
A telepítő lehet egy egyszerű tömörített állomány is, például egy .zip
állomány. Nézzük meg, hogy milyen állományokat szoktunk tenni egy ilyen ZIP
fájlba:
-
futtatható állomány - program.exe
-
függőségek - konyvtar.dll
-
liszencfá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
Az Inno Setup egy telepítő-generáló program. A telepítő leírásához egy
scriptet kell készítenünk, amelynek a kiterjesztése .iss. Ám ezelőtt
készítsünk a licenc.txt állományt is, ANSI-kódolással. Az állományban írjuk
le, hogy milyen feltételek mellett használható a program.
Forrás - Source: www.szit.hu
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 új fájl készítése vagy egy
meglévő szerkesztése között.
Az új fájl esetén is 2 lehetőségünk van:
-
üres script fájl készítése,
-
varázsló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.
Forrás - Source: www.szit.hu
Forrás - Source: www.szit.hu
Forrás - Source: www.szit.hu
Forrás - Source: www.szit.hu
Forrás - Source: www.szit.hu
Forrás - Source: www.szit.hu
Forrás - Source: www.szit.hu
Forrás - Source: www.szit.hu
Forrás - Source: www.szit.hu
Forrás - Source: www.szit.hu
Forrás - Source: www.szit.hu
Forrás - Source: www.szit.hu
A varázsló 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.