Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi einfacher Installer / Updater - Idee & Meinungen? (https://www.delphipraxis.net/132888-einfacher-installer-updater-idee-meinungen.html)

moelski 21. Apr 2009 13:18


einfacher Installer / Updater - Idee & Meinungen?
 
Moin !

Ich möchte hier nur mal eine Idee vorstellen und fragen was ihr davon haltet. Aber bitte nicht gleich mit Kommentaren wie "Gibts schon" "Warum neu erfinden" "..." bewerfen :wink:

Ok, also wir nutzen seit einige Zeit den AKInstallerMSI. An sich ja auch ne tolle Sache. Aber in Summe ist mir das MSI Konzept etwas starr und unsere eher einfach gestrickte Anwendung könnte man mitunter besser Installieren und mit Updates versorgen.
Drum also mal meine Idee die mir so vorschwebt. Ziel soll ein System sein, das einfach zu verwalten ist und wo man einem User schnell Updates zur Verfügung stellen kann.

Meine Idee basiert erstmal grundlegend auf der Bildung von MD5 Hashes. Aber dazu im Verlauf der Beschreibung mehr.

Paket erstellen:
Zunächst mal muss in einem Verzeichnis erstellt werden in dem alle Dateien / Ordner angelegt sind die auf dem Zielsystem erstellt werden sollen. Also alles das was in den Programmordner soll. (Da unsere Software in den Anwendungsdaten des Profils eigenständig benötigte Strukturen anlegt braucht der Installer (in unserem Fall) dies schon mal gar nicht können.)
Dazu muss dann noch eine sehr einfache XML Datei welche die möglichen Startmenü Einträge definiert und wo für jede Datei der MD5 Hash eingetragen ist.

Das ganze packen wir dann in eine ZIP Datei.

Das Verzeichnis wird ebenfalls 1:1 (also nicht als ein ZIP) auf einen Webserver gelegt.

Installation Datei
Für die Installation brauchts dann noch einen sehr einfach gestrickten Wizzard. Der muss nicht sonderlich viel können:
-> Verzeichnis abfragen
-> ggf. (Lizenz) Infos anzeigen
Der Installer nimmt die ZIP Datei und entpackt sie ins Programmverzeichnis. Danach erstellt er anhand der XML Datei die Menüeinträge. Zudem muss er einen Registryeintrag machen für den Uninstaller.
Additiv kann er dann auch die Anwendung starten.

Installation Web
In diesem Fall kommt der Installer ohne die ZIP Datei daher. Da die Software noch nicht installiert ist, läd er das Verzechnis vom Webserver und erstellt es 1:1 im Programmordner. Über die XML Datei weiss der Installer welche Files geladen werden müssen und in welchem Verzeichnis die liegen.

Update Datei
Ein Update über eine Datei geht dann wie folgt ... Der User startet den Installer Wizzard. Wenn der eine Installation im Prog Ordner vorfindet, dann nimmt er die XML Datei aus dem Paket. Nun geht der Installer alle Dateien im Prog Ordner durch. Er erstellt für die vorhandenen Dateien den MD5 Hash und wenn der Hash unterschiedlich zu dem aus dem Paket ist, wird die Datei erneuert. Das bedingt natürlich das die Anwendung nicht läuft.

Update Web
Ähnlich wie bei der Datei ... Der Wizzard läd die XML Datei vom Server. Nun geht er wieder alle Dateien im Prog Ordner durch und vergleicht die MD5 Hash Werte mit denen aus der XML Datei. Bei Unterschieden wird die neue Datei vom Webserver geladen und ersetzt die alte Datei.

Updates Backup
Eine Überlegung wäre die letzten aktualisierten Dateien in einem Backup Ordner zu sichern. So könnte der User ggf. einen vorherigen Stand wieder herstellen.

USB Stick
Da unsere Anwendung auch die Möglichkeit bietet direkt vom Stick zu laufen, wäre es so auch möglich das der Wizzard gleich eine Stick Version erstellt - entweder über die Paket Datei oder eben übers Web.

Uninstaller
Natürlich brauch das ganze auch einen Uninstaller. Der liegt im Prog Verzeichnis und wird auch als Unistaller in Windows registriert. Der löscht letztlich nur den Prog Ordner und fragt ggf. ob die Userverzeichnisse auch bereinigt werden sollen.

Ich denke das man so ein recht schlankes Installer / Update System hinbekommt. Ich bin mir im Moment nicht sicher ob MD5 ausreicht.

Was meint ihr zu der Idee?

gsh 21. Apr 2009 15:07

Re: einfacher Installer / Updater - Idee & Meinungen?
 
Also ich finde die Idee ganz gut.

Noch eine kleine Anregung:
Nach dem Download der Dateien kann mit dem aus der XML Datei bekannten HASH die Datei überprüft werden ob sie richtig heruntergeladen wurde.

Zu MD5:
MD5 gilt schon als gehackt. Das bedeutet man kann damit nicht mehr sicher Passwörter "verschlüsseln". Was in deinem Fall aber ziemlich egal ist. Deswegen würde ich diesen verwenden da dieser schon länger existiert und eine gute Performance aufweißt.

RWarnecke 21. Apr 2009 15:16

Re: einfacher Installer / Updater - Idee & Meinungen?
 
Hallo Dominik,

schaue Dir doch mal die TMS WebUpdate Komponente an. Die verwirklicht im größten Teil schon das was du machen möchtest. Ich selber nutze diese als Update Variante für mein Programm Code-Orakel.

moelski 21. Apr 2009 15:26

Re: einfacher Installer / Updater - Idee & Meinungen?
 
@Rolf:
Die kenne ich. Habe ich mir damals schon mal angesehen.

Aber ich würde gerne eine Kompo haben die genau auf uns zugeschnitten ist. Insofern werde ich mich eher an einem eigenen Installer versuchen.
Aber danke für den Tip.

mirage228 21. Apr 2009 17:20

Re: einfacher Installer / Updater - Idee & Meinungen?
 
Für einen "einfachen" Installer / Uninstaller würde ich Dir hier zu Inno Setup oder Bei Google suchenNSIS raten. Damit kannst Du recht kompakte Setups erstellen, die genau Deinen Anforderungen hier gerecht werden. Die Updates könntest Du ja dann weiterhin mit einem eigenen Programm machen. (Habe ich auf diese Weise in einem meiner Projekte - AlphaCode Studio - gelöst).

Viele Grüße

moelski 21. Apr 2009 17:30

Re: einfacher Installer / Updater - Idee & Meinungen?
 
Moin !

Zitat:

zu Inno Setup oder NSIS raten.
Inno hatten wir vorher. Und NSIS hat mir nie gefallen vom Erstellen der Setups her.

Aber wie schon zu Beginn geschrieben. Mich würde hier eher interessieren was ihr generell von dem Konzept haltet und wo es evtl. Probleme geben könnte.

hoika 21. Apr 2009 17:42

Re: einfacher Installer / Updater - Idee & Meinungen?
 
Hallo,

Probleme gibt es ab XP/Vista,
weil nicht ins Programme-Verzeichnis geschrieben werden darf.

Bei MSI gibt es Patch-Dateien, da klappt das.

Noch zu MSI: Was ist denn da so starr ?


Heiko

mirage228 21. Apr 2009 17:46

Re: einfacher Installer / Updater - Idee & Meinungen?
 
Moin,

Also das ganze ist natürlich Zielgruppenabhängig. Wenn Du z.B. ein Shareware oder Freeware Programm hast, das über das Internet angeboten wird, würde ich dir vorschlagen, die Komplexität des Ganzen zu reduzieren. Sprich Du hast einen normalen Installer (+ Uninstaller), der immer das ganze Paket mit dabei hat (also kein seperater Web-Installer). Programm-Updates über das Internet, wie du es bisher hast, finde ich gut (habe ich schließlich auch so ;) ), wobei Du hierbei einiges beachten solltest:
  • Das Updaten des Updaters und seiner Abhängigkeiten (BPLs, DLLs und dergleichen), der ist ja während des Updates "in Benutzung"
  • Der Vergleich könnte/sollte nicht nur Anhand des MD5 erfolgen, sondern - falls verfügbar - auch Anhand der Versionsinformation. Solltest Du z.B. Dritthersteller DLLs, die Du mitlieferst, aktualisieren wollen und der User hat sich bereits eine neuere Version eingespielt, sollte diese ja nicht überschrieben werden
Das "Update Backup" würde ich nur einbauen, wenn Du "kritische" Software ausliefert. Updates sollten ja eigentlich getestet sein und dein Updater Fehler entsprechend abfangen.

Viele Grüße

RWarnecke 21. Apr 2009 17:46

Re: einfacher Installer / Updater - Idee & Meinungen?
 
Zitat:

Zitat von moelski
Insofern werde ich mich eher an einem eigenen Installer versuchen.

Warum benutzt Du diesen nicht als Grundgerüst und erweiterst den um Deine Funktionen ?

Florian H 21. Apr 2009 18:21

Re: einfacher Installer / Updater - Idee & Meinungen?
 
Zitat:

Zitat von hoika
Noch zu MSI: Was ist denn da so starr ?

Dazu speziell kann ich nichts sagen, aber als Anwender finde ich MSI-Installer furchtbar. Sowas langsames gibts kein zweites Mal :shock:
Da will man ein winziges Programm installieren, was letztenendes nur aus 5-6 Dateien besteht, aber der Installier konfiguriert erstmal ne halbe Minute undefinierterweise herum und kopiert dann irgendwann mal was. Uninstall genauso.
Wohingegen ein kleines Setup ala InnoSetup innert 5 Sek startet und installiert hat (abgesehen von Benutzerinteraktionen).


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:54 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz