Ein Installer abstrahiert den Prozess der Bereitstellung komplexer Softwareinfrastruktur, die in der Regel in einem Archiv enthalten ist, durch eine bequeme, eigenständige Benutzeroberfläche.
Diese Benutzeroberfläche kann grafisch oder textbasiert sein, wobei Text auf einer Befehlszeile wie der Unix-Shell (z.B. bash) ausgegeben wird. Bei grafischen Installationsprogrammen wird oft ein sogenannter Installations-Bootstrapper verwendet. In letzterem Fall handelt es sich um Installationsskripte, die Bash-Skripte, Microsoft-Batch-Skripte oder eine andere Skriptsprache sein können, die auf einer Befehlszeile ausgeführt wird.
Im einfachsten Fall ist eine Anwendung einfach eine ausführbare Datei, bei der das Betriebssystem weiß, was mit der Datei zu tun ist, um sie auszuführen. Die Anwendungsdatei kann sich in einem Ordner mit Unterordnern und anderen Hilfsdateien befinden, die in einem Archiv zusammengepackt sind. In diesem Fall ist möglicherweise kein Installer erforderlich.
Für komplexe Software können komplette Softwareplattformen und enge Integration mit der zugrunde liegenden Betriebssysteminfrastruktur wünschenswert sein, beispielsweise um das Urheberrecht eines Softwareprodukts durchzusetzen.
Viele Installer unter Windows bieten einen /e
oder /extract
Flag. z. B. setup.exe /e
, um die Inhalte des Archivs ohne Ausführen des Installationskripts des Installationsprogramms extrahieren zu können. Kürzlich musste ich genau das tun.
Verschiebungen im Denken
Installationsprogramme sind fast zur Norm geworden, um professionelle Software zu liefern, unabhängig davon, wie einfach die zugrunde liegenden Softwarekomponenten sind. Mit einer zunehmenden Anzahl von computeraffinen Benutzern und dem Wunsch, die eigenen Anwendungen von einem Desktop zum nächsten zu migrieren, wird tragbare Software, die oft in einem einfachen Archiv geliefert wird, immer beliebter.
( Ich weiß nicht, wie viel Zeit ich insgesamt mit Installationsprogrammen verbracht habe, aber es sind definitiv Tage. )
Aufgaben, die der Installer möglicherweise handhaben muss, sind:
- Entpacken (oft mit exotischen, starken Kompressionsarchiven)
- Sicherstellung der Hardwareanforderungen des Systems
- Sicherstellung ausreichenden Festplattenspeicherplatzes
- Sicherstellung der Laufzeitanforderungen der Softwareplattform (z. B. 'Verteilbares')
- Überprüfung auf neuere Softwareupdates
- Herunterladen der Software aus einem entfernten Repository
- Erstellen und/oder Aktualisieren von Programmdateien und Ordnern
- Erstellen von Konfigurationsdateien, Registrierungseinträgen oder Umgebungsvariablen
- Installieren von Softwaretreibern, Einbinden oder Auswerfen von Geräten
- Erhöhung der Zugänglichkeit für Alltagsbenutzer, indem Installationschritte erklärt, Links und Verknüpfungen erstellt werden
- Eigene Software durch Lesezeichen o.ä. bewerben
- Konfigurieren von Kernel-Modulen und automatisch laufenden Komponenten (z. B. Dämonen, Windows-Dienste)
- Automatisches Patchen der Software
- Einstellen von Ordner-, Datei- und Benutzerberechtigungen
- Erstellung von UUID-Referenzen zur Verknüpfung der Software mit einer Installationsinstanz und Verhindern der Portabilität
PS: Wenn Ihnen noch weitere Punkte einfallen, lassen Sie es mich wissen und ich werde sie einbauen.