- Softwareinstallation
-
Die Installation von Software ist der Vorgang, bei dem neue Programme auf einen vorhandenen Computer kopiert und dabei eventuell konfiguriert werden. Dieser Vorgang wird speziell unter dem Betriebssystem Windows auch Setup (englisch für Aufbau) genannt. In Anlehnung daran wird die Installation auch als das „Aufsetzen“ bezeichnet.
Inhaltsverzeichnis
Ziel
Eine erfolgreiche Installation ist eine zwingende Voraussetzung für das Funktionieren vieler Computerprogramme. Je komplexer das Programm ist, das heißt unter anderem, aus je mehr einzelnen Dateien (oder gar Dateiänderungen) an je mehr unterschiedlichen Orten ein Programm besteht, desto größer ist das Risiko, dass bei der Installation ein Fehler auftritt. Schlägt die Installation auch nur teilweise fehl, kann das Programm häufig nicht verwendet werden. Daher ist, insbesondere bei umfangreichen Programmen, die Entwicklung eines zuverlässigen Installationsvorgangs ein – auch vom Aufwand her – wesentlicher Bestandteil der Softwareentwicklung.
Der Begriff Deinstallation bezeichnet den umgekehrten Vorgang, also das Entfernen von Software.
Alternativen
In den letzten Jahren sind immer leistungsfähigere Standards und Techniken entwickelt worden, um den Installationsvorgang zu vereinfachen und zu standardisieren. Für eine Programm-Installation können z. B. folgende grundlegenden Methoden angewandt werden:
- Das Programm wird mittels eines einfachen Kopiervorgangs an einem beliebigen Ort installiert. Diese Methode ist einfach und intuitiv und die bevorzugte etwa unter MacOS X. Ein Risiko ist, dass z. B. alte Versionen desselben Programms an anderen Orten unbemerkt liegen bleiben können. Falls außer der Programmdatei weitere Dateien benötigt werden, ist die Methode nicht geeignet.
- Wie zuvor, aber das Programm installiert beim ersten Start automatisch fehlende Dateien an den vorgesehenen Orten.
- Das Programm wird nicht als solches geliefert, sondern es wird lediglich ein Installations-Programm geliefert, mit welchem das eigentliche Programm dann installiert wird.
- Das Programm wird als Paket geliefert. Dies ist im Allgemeinen ein Archiv, d. h. eine Datei, welche alle benötigten Dateien und (De-)Installations-Routinen enthält. Durch Ausführung des Archivs wird ein Installationsprogramm gestartet, welches Bestandteil des Betriebssystems ist. Unter Mac OS sind dies z. B. Dateien vom Typ .pkg oder .mpkg, die mittels des systemeigenen Installationsprogramms geöffnet werden.
Installations-Schritte
Bootstrapping
Sogenanntes Bootstrapping ist notwendig wenn die Installation von einem auf dem System bereits installierten oder ins Betriebssystem integrierten Package Manager oder Installer durchgeführt werden soll. In diesem Fall kann es passieren dass dieser vor der eigentlichen Installation auf einen neuen Versionsstand gebracht werden muss. Hierzu wird ein kleines Programm (z.B. Setup.exe genannt) gestartet welches das Upgrade für den Installer oder Package Manager durchführt und danach die eigentliche Installation startet. Dieses Programm wird Bootstrapper genannt.
Prüfung
Vor der eigentlichen Installation (Kopieren, Registrieren) prüfen viele Installationsprogramme, ob die neu zu installierende Anwendung überhaupt für das System geeignet ist. Dabei wird die Hardwareausstattung überprüft, die Version des Betriebssystems und die anderen bereits installierten Programmkomponenten. Im Rahmen der Prüfung wird festgelegt, welche Dateien, Bibliotheken, Komponenten (s. u.) und Konfigurationsdaten benötigt werden.
Weiterhin sollte die "Integrität" der Installationsdateien geprüft werden, d. h. es sollte sichergestellt sein, dass die Dateien bzw. das Archiv nicht beschädigt sind (z. B. über eine Prüfsumme).
Kopieren von Dateien
Moderne Programme bestehen aus einer oft großen Anzahl unterschiedlicher Dateien:
- Hauptanwendung
- Datendateien, zum Beispiel Datenbank, XML-Dokumente, Vorlagen
- Onlinehilfe
- Konfigurationsdateien
- Bibliotheken
- Komponenten
- Verweise
- …
Im Allgemeinen werden diese in ein (neues) Verzeichnis auf dem Computer kopiert. Mitunter müssen einige der Dateien aber auch in allgemeine Verzeichnisse oder Verzeichnisse des Betriebssystems kopiert werden.
Weiterhin ist es meist sinnvoll, oder gar notwendig, alte Versionen des Programms vorher zu beseitigen – dies nennt man Deinstallation.
Bibliotheken und Komponenten
Bibliotheken und Komponenten sind durch mehrere Programme genutzte Softwarebausteine. Bei der Installation müssen sie ggf. mit installiert werden. Es werden dabei oft ältere Versionen, die durch andere Anwendungen oder das Betriebssystem vorher installiert wurden, ersetzt. Sie müssen beim System registriert werden, d. h. auf eine vom System definierte Weise bekannt gemacht werden. Dies ist ein kritischer Punkt insbesondere bei Windows-Programmen.
Konfiguration
Manchmal führt das Installationsprogramm auch eine initiale Konfiguration des installierten Programms durch. Dazu prüft es das System oder befragt den Anwender nach den notwendigen Einstellungen, zum Beispiel der Art und Geschwindigkeit der Netzwerkanbindung. Dabei muss zwischen benutzerspezifischen und Computer-spezifischen Einstellungen unterschieden werden: Die ersteren betreffen nur den aktuell angemeldeten Benutzer, während letztere sämtliche Benutzer des Systems betreffen.
Abschluss der Installation
Insbesondere wenn Bibliotheken ausgetauscht wurden, muss das System unter Umständen komplett oder in Teilen (z. B. der Drucker-Dienst) neu gestartet werden, um die Änderungen wirksam werden zu lassen. Die Ursache liegt meist darin, dass die betroffenen Dateien, Dienste und Protokolle zum Zeitpunkt der Installation bereits in Verwendung sind und daher nicht sofort aktualisiert werden können. Tritt diese Situation auf, sind folgende Lösungen möglich:
- Kann die zu aktualisierende Datei ausgetauscht werden, ohne dass die Änderung wirksam wird, ist es ausreichend, den Dienst (z. B. die grafische Benutzeroberfläche oder den Druckdienst) bzw. das System neu zu starten, so dass beim nächsten Start die neue Datei verwendet wird.
- Kann oder darf die Datei nicht im Betrieb ausgetauscht werden, hinterlegt das Betriebssystem eine Liste mit den verbleibenden Aktionen und führt diese beim nächsten Neustart des System aus. Zu diesem Zeitpunkt sind die Bibliotheken noch nicht in Benutzung und können ausgetauscht werden. Insbesondere bei Hardwaretreibern, welche die Schnittstelle zwischen Betriebssystem und Hardware bilden, ist dies fast immer der Fall.
Sicherheitsaspekte
Für die Installation von Software sind bei aktuellen Betriebssystemen (Linux, Windows Vista, MacOS X) oft administrative Berechtigungen notwendig. Ein normaler Anwender hat wegen des hohen Risikos nicht die Berechtigung, Installationen durchzuführen.
Leistungsfähige Installationswerkzeuge erlauben auch das Rückgängigmachen einer oder mehrerer Installationen (sogenannter transaktionsbasierter Rollback). Dabei ist es manchmal auch möglich, ein System auch auf den Stand zu einem bestimmen Zeitpunkt zurückzusetzen. Dies ist auf produktiv eingesetzten Servern wichtig, wenn mehrere gemeinsam installierte Patches zu einem Fehlverhalten der Maschine geführt haben.
Verfahren
Mit dem Aufkommen des Internets und schneller Netzwerkverbindungen haben sich neue Installationstechniken entwickelt.
- Bei Windows: Hotfixes und Service Packs: Nur bestimmte Teile des Produkts werden aktualisiert. Setzt eine vorhandene Installation voraus. (Die auf Windows Installer basierende Update-Pakete sowie Updates für Windows selbst können aber in der Regel in die Installationsdateien integriert werden)
- Inkrementelle Installation: Periodisch oder durch Aufruf des Anwenders prüft das Installationsprogramm anhand einer zum Beispiel im Internet abgelegten Liste, ob das installierte Programm aktuell ist. Falls nicht (für Teile der Anwendung gibt es Aktualisierung), fragt es meist beim Anwender nach und lädt dann ggf. aus einer zentralen Quelle nur die Dateien nach, die aktualisiert werden müssen.
- Replikation: Bei jedem Start der Anwendung wird überprüft, ob die Programminstallation aktuell ist, und ohne Rückfrage an den Anwender automatisch aktualisiert (funktioniert nur, wenn verlässliche und schnelle Netzwerkverbindungen vorhanden sind). Das Wort Replikation ist an dieser Stelle eher ungeeignet, besser wäre die Verwendung des Begriffes „automatische Aktualisierung“.
- Server-Installation: Das Programm wird gar nicht mehr auf den Computer des Anwenders ("client") installiert, sondern zentral auf einem Server abgelegt. Beim Start des Programm vom Client aus (Link) wird es über das Netzwerk in den Arbeitsspeicher des Clients geladen.
- Server-Anwendung: Die Anwendung wird nicht mehr auf dem Rechner des Anwenders ("client") installiert, sondern stattdessen auf dem Server installiert und ausgeführt. Beispiele sind Windows Terminal Services, Web-Anwendungen (besser HTTP-Anwendungen), Berichtgeneratoren, Backup-Office-Produkte
- Unbeaufsichtigte Installation: Die Installation erfolgt ohne Benutzereingriff. Die benötigten Einstellungen werden vorher in einem Script festgelegt und gespeichert oder als Parameter übergeben. Dadurch ist es möglich, Prozesse, die sich oft wiederholen, zu automatisieren.
- Virus, Agent, Spyware, Dialer…: die Hersteller von unerwünschten Programmen machen sich die oben beschriebenen Möglichkeiten ebenfalls zunutze. Oft kommt diese Software als Bestandteil von zum Beispiel Shareware. Einmal auf dem System, laden solche Programme aus dem Internet weitere Bestandteile herunter. Es ist lediglich notwendig, einen Einsprungpunkt zu bekommen – danach können beliebig viele weitere Bestandteile der Schadsoftware (schrittweise) nachinstalliert werden, ohne dass der Anwender dies überhaupt bemerkt. Diese Methode ist so erfolgreich, dass Hersteller seriöser Produkte beginnen, auf diese Techniken zurückzugreifen, beispielsweise für Inventarisierungssoftware oder Virenscanner. Zunächst wird einmal ein minimaler "Agent" installiert, der dann Replikation einsetzt. Allerdings wird die initiale Verteilung dabei von einem Verantwortlichem beim Kunden gestartet und nicht wie bei Viren gegen den Willen des Anwenders.
Installationswerkzeuge
- RPM, ein allgemeines Paketmanagement für Linux, das unter anderem von SuSE Linux, Red Hat und Mandrivalinux verwendet wird
- Port, das Paketmanagement von BSD, Gentoo Linux nutzt ein ähnliches System namens Portage, das auf sogenannten ebuilds basiert
- Advanced Packaging Tool (APT), das Paketmanagement von Debian GNU/Linux und Ubuntu
- Microsoft Windows Installer, ein Installationssystem von Microsoft, dessen Installationsdateien auf MSI-Datenbanken basieren. Der Installer sammelt die auszuführenden Aktionen und Änderungen am System in Tabellen und stellt erweiterte Funktionen bereit, wie das Anpassen von Installationen, das Patch-Management für neue Versionen sowie ein Rollback bei fehlgeschlagener Installation.
- Installationsprogramm (MacOS X), engl. "Installer": Standard-Installationsprogramm von MacOS X, Bestandteil des Betriebssystems.
- Nullsoft Scriptable Install System, Ein freies, unter Windows weit verbreitetes Tool zur Erstellung von Installations-Programmen, welches über eine einfache, aber mächtige Skript-Sprache verfügt und selbst nur wenig Aufwand benötigt.
Mögliche Probleme
- Generell: Es können Fehler dadurch auftreten, dass Annahmen, die der Entwickler des Installationsvorgangs getroffen hat, nicht stimmen. → Der Entwickler sollte möglichst keine Annahmen treffen müssen.
- beschädigte Dateien
- fehlende Dateien
- unzureichende Berechtigungen/Rechte
- undefinierter Systemzustand nach Abbruch der Installation
- unsaubere Deinstallation
- Installation löscht oder manipuliert Dateien, die auch für andere Applikationen von Bedeutung sind
- Windows DLL-Hölle
Zu klärende Fragen
- Sind die Installations-Dateien vor unbefugtem Zugriff zu schützen?
- Wird die Installation durch einen Administrator oder vom Benutzer selber ausgelöst?
- Wie sollen Programm-Aktualisierungen verteilt werden? (automatisch/nur durch den Systemverwalter/durch den Anwender)
- Lässt sich die Installations-Routine durch den Administrator nachträglich anpassen?
- Wie wird die Installation lokal und/oder zentral protokolliert?
- Wie kann der Installationsstatus einer Applikation netzwerkweit überprüft werden?
- Welche Rechte/Berechtigungen sind zur Durchführung der Installation notwendig?
- Besteht Bedarf an signierten Installations-Dateien, um beispielsweise die Authentizität der Dateien überprüfen zu können (Vermeiden von "gefälschten" Applikationen, um z. B. Viren einzuschleusen)?
Anforderungen
- Es soll einfach sein (XCOPY Deployment = Programm auf den Rechner kopieren, und es läuft)
- Es soll keine Nebenwirkungen auf andere Programme haben
- Aktualisierungen und Fehlerkorrekturen (engl. "updates/bug fixes") sollen leicht und möglichst automatisch installierbar sein.
Alternativen
Softwarenutzung ohne tiefgreifende Installation ist zum Beispiel möglich durch portable Software oder in Linux-Systemen mittels Klik.
Siehe auch
Die Erstinstallation von Betriebssystem und Anwendungssoftware im Rahmen von sogenannten Rollouts wird manchmal auch Betankung genannt.
Prozess zur Aufnahme einer Hardwarekonfiguration durch Installation Sign OFF.
Wikimedia Foundation.