Kész Firebird alkalmazás telepítése

Kész Firebird alkalmazás telepítése
2007-03-15T21:39:38+01:00
2007-03-25T10:55:15+02:00
2022-11-03T23:20:47+01:00
*deleted_42098963
Sziasztok!

Olyan problémám lenne, hogy írtam egy Firebird adatbáziskezelő rendszert, és szeretnék készíteni hozzá egy telepítőt.
Nem tudom, hogy milyen programmal csináljam (milyen programmal lehet egyszerűen?), és hogyan. (??!!) (az InstallShield nekem egy picit nehézkes)

Lenne egy szerveres telepítője, ami felteszi a szervergépre az adatbázist, valamint lenne egy kliens telepítője is, ami a programot teszi fel a hozzá tartozó fájlokkal.

Továbbá azt meg lehetne valahogy oldani, hogy a feltelepített kliensek lássák a szerveren lévő adatbázist (az IP-t előre nem tudom)? Mert ha beállítom a Config.ini-ben az adatbázis célját (192.168.0.108:80\C:\Program Files\DKR 1.0\data\adatbazis.fdb), az itt működik is, de akkor mi van, hogy ha egy másik intranetre teszem a szerver-és a kliens verziókat? Annál nem biztos, hogy ezen az IP-n lesz az adatbázis (szerver).
Vagy intranetenként külön kell csinálni olyan telepítőcsomagokat, amiben a helyes Config.ini van benne?
Mutasd a teljes hozzászólást!
Keress rá a help-ben az exec parancsra

[Files] Source: ".\Files\Database\Firebird-1.5.1.4481-Win32.exe"; Flags: dontcopy; [C0de] procedure CurStepChanged(CurStep: TSetupStep); var ResultCode: Integer; begin if (CurStep = ssPostInstall) then begin Param := ' /SP- /VERYSILENT /NORESTART /COMPONENTS="DevAdminComponent, ClientComponent" /COPYFBCLIENT'; ExtractTemporaryFile('Firebird-1.5.1.4481-Win32.exe'); Exec(ExpandConstant('{tmp}\Firebird-1.5.1.4481-Win32.exe'), Param, ExpandConstant('{tmp}'), SW_HIDE, ewWaitUntilTerminated, ResultCode); end; end;

[Files] Flags: dontcopy; // A fájl nem lesz telepítve
ExtractTemporaryFile: Egy nem telepítendő fájlt az átmeneti könyvtárba kirak és a telepítés végén törli onnan
ExpandConstant('{tmp}'); // Visszaadja egy constans értékét, jelen esetben az átmeneti könyvtárét
Exec( ... ) // Egy külső program indítása

A C0de = Code csak a hozzászólás feldolgozná
Mutasd a teljes hozzászólást!

  • Az elso kerdesre en az inno setupot ajanlanam, en azzal szoktam ilyesmi alkalmazasokhoz telepitot csinalni.
    A masodikra miert nem csinalsz egy kis programot, amiben be lehet allitani szerver IP-jet. A telepites vegen a telepito elindithatna, be lehet allitani az IP-t, elmenti a config.ini-be es kesz. Mar ha jol ertem a problemat.
    Mutasd a teljes hozzászólást!
  • Értem.
    Igen, jól értetted a problémámat.

    - Honnan lehet leszedni az InnoSetup-ot?
    - Ingyenes?
    - Valami tutorial, vagy valami segédanyag, hogy hogyan tudok ilyen Firebird-ös telepítőt csinálni van-e valahol? (szerver, és kliens telepítőhöz)
    Mutasd a teljes hozzászólást!
  • Szia!
    Az InnoSetup ingyenes.
    Firebird install exe paraméterezése a kívánalmaknak megfelelően :


    Installation from a batch file
    ------------------------------

    The setup program can be run from a batch file. The
    following parameters may be passed:


    /SP-
    Disables the 'This will install... Do you wish to
    continue?' prompt at the beginning of Setup.

    /SILENT, /VERYSILENT
    Instructs Setup to be silent or very silent. When
    Setup is silent the wizard and the background window
    are not displayed but the installation progress
    window is. When a setup is very silent this
    installation progress window is not displayed.
    Everything else is normal so for example error
    messages during installation are displayed and the
    startup prompt is (if you haven't disabled it with
    the '/SP-' command line option explained above)

    If a restart is necessary and the '/NORESTART'
    command isn't used (see below) and Setup is silent,
    it will display a Reboot now? messagebox. If it's
    very silent it will reboot without asking.

    /NORESTART
    Instructs Setup not to reboot even if it's necessary.

    /DIR="x:\dirname"
    Overrides the default directory name displayed on
    the Select Destination Directory wizard page. A
    fully qualified pathname must be specified. If the
    [Setup] section directive DisableDirPage was set to
    yes, this command line parameter is ignored.

    /GROUP="folder name"
    Overrides the default folder name displayed on the
    Select Start Menu Folder wizard page. If the [Setup]
    section directive DisableProgramGroupPage was set to
    yes, this command line parameter is ignored.

    /NOICONS
    Instructs Setup to initially disable the Don't create
    any icons check box on the Select Start Menu Folder
    wizard page.

    /COMPONENTS="comma separated list of component names"

    Choose from - ServerComponent,
    ServerComponent\SuperServerComponent,
    ServerComponent\ClassicServerComponent,
    DevAdminComponent and
    ClientComponent

    Overrides the default components settings. Using
    this command line parameter causes Setup to
    automatically select a custom type. A full install
    requires combining components. For example:

    /COMPONENTS="ServerComponent,
    ServerComponent\SuperServerComponent,
    DevAdminComponent, ClientComponent"

    would be required for a full install of the SuperServer.


    /FORCE

    Tells the installer to ignore its analysis of the
    existing environment. It will attempt to install
    and configure Firebird 1.5 as if no previous
    version of Firebird or InterBase was installed.

    This can be useful if you have a seriously broken
    installation that you cannot uninstall. Or it
    could be another way to aggravate your users by
    breaking a perfectly good working install of
    InterBase. Its your choice.


    /NOCPL

    Don't install the Control Panel Applet. This is
    useful for two reasons:

    o Installing/Uninstalling the CPL applet will
    often require a system restart.

    o You may wish to use an alternative cpl applet.


    /NOGDS32

    Don't install a copy of the client library into
    the system directory, even if installation
    analysis concludes it is OK to do so.


    /COPYFBCLIENT

    Copy the fbclient.dll to the system directory. This
    is recommended for client installs if you are sure
    that you will only ever be accessing a single
    server version. If your client applications are
    likely to take advantage of accessing different
    server versions this is not recommended. See

    doc/README.Win32LibraryInstallation.txt

    for more information.
    Mutasd a teljes hozzászólást!
  • Namost már szinte kész van az egész install, csak ezekkel nem boldogulok:
    - A Firebird Silent opcióját hogyan kell beállítani úgy, hogy csak a kliens verziót tegye fel?
    - Az install végén meg szeretném nézetni a telepítőmmel, hogy létezik-e "XUSER" nevű felhasználó a Firebird adatbázisban, és ha nem, akkor hozza létre az általam megadott jelszóval együtt.

    Ezek nem nagyon mennek.

    Segítsetek!
    Mutasd a teljes hozzászólást!
  • A felhasználó felvételére írj egy kis programot, amit a telepítéskor egyszer lefuttatsz!
    Erre a célra vannak komponensek a Delphi IBX csomagjában!
    Mutasd a teljes hozzászólást!
  • Ha csak klienst akarsz telepíteni akkor /COMPONENTS="DevAdminComponent, ClientComponent"
    A felhasználók lekérdezésére, létrehozására írj DLL-t egyszerüen lehet kezelni Inno-ból, van rá példaprogram is
    Mutasd a teljes hozzászólást!
  • A Firebirdöt így indítom Inno-ból:
    [Run]
    Filename: "{app}\setups\FBSetup.exe"; Description: "{cm:LaunchProgram,Firebird}"; Flags: /SILENT /COMPONENTS="DevAdminComponent, ClientComponent"

    ?
    De ha ide teszem (meg a useres progit), akkor a felhasználó ki is tudja venni a pipát mellőle (meg egyébként is látható). Azt úgy nem lehet, hogy ne látszódjon a telepítés végén a Firebird telepítője, és a User Management progi? (autómatikusan indítsa el setup után, és ne tudja a felhasználó kikapcsolni)
    Mutasd a teljes hozzászólást!
  • A telepítést inkább az Exec paranccsal indítsad a Code részben a CurStepChanged eljárásban, hogy a fájlok telepítése elött vagy után az rajtad áll.

    procedure CurStepChanged(CurStep: TSetupStep); begin case CurStep of ssInstall: // Fájlok telepítését megelőzően ssPostInstall: // Fájlok telepítését követően ssDone: // A telepítő bezárása end; end;
    Mutasd a teljes hozzászólást!
  • Hm...basszus összezavarodtam.

    Leírom az eddigi kódomat, ami ezt csinálja: Feltelepíti a cuccokat, és a telepítés végén meg a felhasználó kiválaszthatja, hogy elinduljon-e az adatbázis beállító.
    Teljes kód:

    ; Script generated by the Inno Setup Script Wizard. ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! [Setup] AppName=Programom neve AppVerName=3.0 AppPublisher=Készítő AppPublisherURL=http://www.weboldal.hu AppSupportURL=http://www.weboldal.hu AppUpdatesURL=http://www.weboldal.hu DefaultDirName={pf}\Programom neve DefaultGroupName=Programom neve InfoAfterFile=Forrás\afterinstall.txt AllowNoIcons=yes LicenseFile=Forrás\license.txt OutputBaseFilename=setup SetupIconFile=Forrás\programikon.ico Compression=lzma SolidCompression=yes [Tasks] Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked [Files] Source: "Forrás\programom.exe"; DestDir: "{app}"; Flags: ignoreversion Source: "Forrás\AdatbazisBeallitasa.exe"; DestDir: "{app}"; Flags: ignoreversion Source: "Forrás\data\*"; DestDir: "{app}\data"; Flags: ignoreversion recursesubdirs createallsubdirs Source: "Forrás\user_doc_v1.0_Beta.doc"; DestDir: "{app}"; Flags: ignoreversion Source: "Forrás\Config.ini"; DestDir: "{app}"; Flags: ignoreversion Source: "Forrás\Database.ini"; DestDir: "{app}"; Flags: ignoreversion Source: "Forrás\fbclient.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "Forrás\msvcp60.dll"; DestDir: "{app}"; Flags: ignoreversion ; NOTE: Don't use "Flags: ignoreversion" on any shared system files [INI] Filename: "{app}\Programom.url"; Section: "InternetShortcut"; Key: "URL"; String: "http://www.weboldal.hu" [Icons] Name: "{group}\Programom"; Filename: "{app}\programom.exe" Name: "{group}\{cm:ProgramOnTheWeb,Programom}"; Filename: "{app}\Programom.url" Name: "{group}\{cm:UninstallProgram,Programom}"; Filename: "{uninstallexe}" Name: "{userdesktop}\Programom"; Filename: "{app}\programom.exe"; Tasks: desktopicon Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\Programom"; Filename: "{app}\programom.exe"; Tasks: quicklaunchicon [Run] Filename: "{app}\AdatbazisBeallitasa.exe"; Description: "{cm:LaunchProgram,Adatbázis beállító (ajánlott!)}"; Flags: nowait postinstall skipifsilent [UninstallDelete] Type: files; Name: "{app}\Programom.url"
    Mutasd a teljes hozzászólást!
  • A Setup, Tasks,... szekciókon túl van Code is. Ide Pascal szerű nyelven lehet programot írni. Itt el lehet érni egyes rendszerfolyamatokat is, pl ki lehet hagyni egyes ablakokat, újakat lehet berakni, vagy egy adott helyen le lehet futtatni egy programot. Nézd meg a helpet, vagy egy mintakódot.
    Az Ini helyett pedig szerintem használd a registryt.
    Mutasd a teljes hozzászólást!
  • Sztem egyenlőre jó az ini. Majd egy picit később (ha ez működik) akkor átmódosítom.

    Akkor vegyem ki a [Run]-t?
    Ha kiveszem, és beteszem a [ Code ]-t, akkor abba írhatom, hogy:

    procedure CurStepChanged(CurStep: TSetupStep); begin if (CurStep = ssPostInstall) then // Ide mit kell írni? // Mert szerintem itt kellene futtatni a Firebird installt a kapocsolókkal, és az adatbázisbeállítót (de hogyan kell elindítani?) end;

    ?
    Mutasd a teljes hozzászólást!
  • Keress rá a help-ben az exec parancsra

    [Files] Source: ".\Files\Database\Firebird-1.5.1.4481-Win32.exe"; Flags: dontcopy; [C0de] procedure CurStepChanged(CurStep: TSetupStep); var ResultCode: Integer; begin if (CurStep = ssPostInstall) then begin Param := ' /SP- /VERYSILENT /NORESTART /COMPONENTS="DevAdminComponent, ClientComponent" /COPYFBCLIENT'; ExtractTemporaryFile('Firebird-1.5.1.4481-Win32.exe'); Exec(ExpandConstant('{tmp}\Firebird-1.5.1.4481-Win32.exe'), Param, ExpandConstant('{tmp}'), SW_HIDE, ewWaitUntilTerminated, ResultCode); end; end;

    [Files] Flags: dontcopy; // A fájl nem lesz telepítve
    ExtractTemporaryFile: Egy nem telepítendő fájlt az átmeneti könyvtárba kirak és a telepítés végén törli onnan
    ExpandConstant('{tmp}'); // Visszaadja egy constans értékét, jelen esetben az átmeneti könyvtárét
    Exec( ... ) // Egy külső program indítása

    A C0de = Code csak a hozzászólás feldolgozná
    Mutasd a teljes hozzászólást!
  • Bocsi, hogy csak most írok, de sajna nem voltam gépközelben...

    Szal köszi szépen a segítséget!
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd