Einfache und kleine Installer mit 7-Zip selbstgebaut
Es muß nicht immer ein ausgewachsener Installer mit NSIS oder ähnlicher Software sein. Wenn man einfach nur eine Sicherheitsabfrage ("Software XYZ jetzt installieren?") haben möchte und anschließend die Setup.exe nach dem Entpacken des Distributionsarchivs automatisch aufgerufen werden soll, so kann man dafür auch 7-Zip nehmen.
SevenZip ist ein Packer/Archiver, der sowohl eine Commandline-Version wie auch einen eigenen File-/Archivmanager mitbringt. Wer schon einmal über die Dateiendung 7z gestolpert ist, kennt den 7-Zip bereits. Der verwendete Algorithmus ist LZMA, welcher eine deutlich höhere Kompression als *zip erreicht.
Angenommen, man hat ein Verzeichnis mit vielen Dateien (mydir) und einer Setup.exe. Daraus möchte man eine einzige Datei machen, nämlich eine kleinere Setup.exe.
- Man komprimiert das Verzeichnis mittels 7-Zip zuerst einmal mit höchster Kompression (Ultra) in eine Datei (z.B. mydir.7z). Am bequemsten geht das direkt im Explorer, rechte Maustaste auf das Verzeichnis, "Zu Archiv hinzufügen".
- Eine config.txt muss erstellt werden, in der man dem Self-Extractor beschreibt, was er beim entpacken noch tun soll. Diese Datei muß UTF-8 codiert vorliegen und kann zum Beispiel folgenden Inhalt haben:
;!@Install@!UTF-8!
Title="Installer"
BeginPrompt="Do you want to install this fancy Software?"
RunProgram="mydir\Setup.exe"
;!@InstallEnd@! - Nun fügt man die Einzelteile zu einem gesamten, selbstextrahierenden Archiv zusammen. Dafür wird der copy-Befehl in der Commandline herangezogen:
copy /b c:\Programme\7-Zip\7zS.sfx + config.txt + mydir.7z mydir_installer.exe
Danach sollte man eine "mydir_installer.exe" im entsprechenden Verzeichnis finden, die dann
- sehr klein ist im Vergleich mit einem entsprechenden Zip-Archiv,
- den eigenen Inhalt selbst extrahiert und anschließend die Setup.exe aus "mydir" startet
- und vor dem Start sogar noch mal fragt, ob der Benutzer das wirklich tun möchte.
Kommentare
Ansicht der Kommentare: Linear | Verschachtelt