Installation (Computer)

Die Installation von Software ist der Vorgang, bei dem ein oder mehrere Programme oder neue Versionen von Programmen auf einen vorhandenen Computer kopiert und dabei eventuell konfiguriert werden. Dieser Vorgang wird in der Regel durch Installationsprogramme realisiert. Bei Betriebssystemen wird die Installation auch als das „Aufsetzen“ eines Computers bezeichnet, da dieser ohne ein auf einem austauschbaren Datenspeicher (z. B. einer Festplatte) aufgespieltes Betriebssystem normalerweise nicht direkt nutzbar ist. Das Installationsprogramm muss dazu von einem bootfähigen Medium starten, das oft eine spezielle Version eines Live-Systems inklusive (meist automatisch ausgeführtem) Installationsprogramm enthält. Nicht nur bei Betriebssystemen wird der gesamte Installationsvorgang oft auch als Setup (englisch für Aufbau oder Konfiguration) bezeichnet, beispielsweise unter den Betriebssystemen MS-DOS/​PC DOS, OS/2 und Windows, aber auch bei zahlreichen Anwendungsprogrammen.

Installation des Betriebssystems Windows (Windows Vista)

Eine Alternative stellt die sog. Paketverwaltung dar, wobei die installierten Programme als Pakete im System installiert und konfiguriert werden. Die Paketverwaltung kümmert sich dabei meist auch um die Aktualisierung der Pakete – und damit der einzelnen Programme, sowie um die Auflösung von Konflikten. Vor allem im Unix-Umfeld sind unterschiedliche Paketmanager verbreitet, mit winget steht ein solcher jedoch auch auf Windows-Betriebssystemen (ab Windows 10 Version 1709) zur Verfügung.

Ziel

Eine erfolgreiche Installation ist eine 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 hinsichtlich des Aufwands – wesentlicher Bestandteil der Softwareentwicklung.

Der Begriff Deinstallation bezeichnet den umgekehrten Vorgang, also das Entfernen von Software.

Verfahren

Mit dem Aufkommen des Internets und schneller Netzwerkverbindungen haben sich neue Techniken zur Verteilung, Installation und Aktualisierung von Programmen entwickelt.

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 beispielsweise folgende grundlegende Methoden angewandt werden:

Softwarenutzung ohne tiefgreifende Installation ist zum Beispiel möglich durch portable Software oder in Linux-Systemen mittels Klik.

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 (meist 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 (siehe unten) und Konfigurationsdaten benötigt werden.

Weiterhin sollte die „Integrität“ der Installationsdateien geprüft werden, das heißt, es sollte sichergestellt sein, dass die Dateien beziehungsweise das Archiv nicht beschädigt sind (zum Beispiel über eine Prüfsumme).

Kopieren von Dateien

Moderne Programme bestehen aus einer oft großen Anzahl unterschiedlicher Dateien:

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 gegebenenfalls 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, das heißt auf eine vom System definierte Weise bekannt gemacht werden. Dies ist insbesondere bei Windows-Programmen ein kritischer Punkt.

Registrierung beim Betriebssystem

Ein Hauptunterschied zwischen einem reinen Kopieren einer Anwendung und einer Installation ist, vom Betriebssystem gegebenenfalls vorgesehene, Aufrufe oder Registrierungen vorzunehmen. Im Unterschied zu Bibliotheken und Komponenten dient dieser Punkt der Bekanntmachung der Anwendung beim Betriebssystem. Dies gilt insbesondere für Betriebssysteme mit grafischen Oberflächen. Schon das Ablegen eines Icons auf dem Desktop oder eine Ermöglichung eines Starts durch eine Tastenkombination ist eine solche Registrierung. Meist dient die Registrierung auch dazu, (über Bedienelemente des Betriebssystems) die installierten Anwendungen benutzerfreundlich anzuzeigen, zu deinstallieren oder auch zu ändern oder upzudaten.

Unter Windows ist dies etwa über die Systemsteuerung möglich, ab Windows 8 hieß dieser Punkt „Programme und Features“, ab Windows 10 „Apps und Features“, in Windows 7 hieß dieser Punkt „Software“. In windows-spezifischen Installationsprogrammen wie etwa MSI und Fachkreisen ist dieser Bereich auch als ARP bekannt, da die ursprüngliche englische Bezeichnung „Add/Remove Programs“ hieß.

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 (etwa 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:

Installationsprogramme

Ein Installationsprogramm, umgangssprachlich auch kurz Installer genannt, ist ein Programm, das eine Installation vornimmt. Es können drei Formen unterschieden werden:

Ein derzeit sehr populäres Format für Windows ist das MSI-Installationspaket, das vom Windows Installer installiert wird. Von Unternehmen hergestellte Tools, um Installationsprogramme für Windows herzustellen, sind z. B. InstallShield, SetupBuilder, Wise, ScriptLogic (vorher MaSaI Solutions), InstallAware, das Multiplattform-Tool InstallBuilder von BitRock (für Open-Source-Programme kostenlos) und OnDemand. Die meisten dieser Tools können sowohl MSI-Pakete als auch reguläre Standalone-Installer in Form einer ausführbaren Datei erzeugen. Für eComStation gibt es das Programm WarpIn für denselben Zweck.

Freie Alternativen sind z. B. NSIS, FWPinstaller, Inno Setup, IzPack, InstallForge und WiX (von Microsoft) für Windows, Checkinstall für Linux.

Viele Programme können auch ohne Installationsprogramm durch einfaches Kopieren der Dateien installiert werden. Voraussetzung hierfür ist, dass weder Registry-Einträge erstellt noch tiefergehende Änderungen am System vorgenommen werden müssen. Außerdem müssen Verknüpfungen oder Einträge im Startmenü manuell erstellt werden.

Bei Installationsprogrammen auf CD-ROM oder DVD für Windows wird oft die Autorun-Funktion verwendet, um sie beim Einlegen automatisch starten zu lassen.

Aspekte

Deinstallations- und Updatefähigkeit

Bereits die Installation eines Programmes hat für Deinstallation und Updatefähigkeit vorzusorgen, vereinfacht gesagt, dass dieses wieder (einfach und zuverlässig) deinstallierbar ist, dass andere Anwendungen oder die Systemstabilität auch durch eine Deinstallation nicht negativ beeinflusst werden. Je nach Betriebssystem ist auch die Reparaturfähigkeit der Anwendung zu gewährleisten, etwa bei Windows.

Stabilität

Eine Installation muss stabil sein, das heißt, sie muss zuverlässig und ohne Fehler oder Schwierigkeiten durchführbar sein.

Sicherheit

Für die Installation von Software sind bei aktuellen Betriebssystemen (Linux, Windows, macOS) oft administrative Berechtigungen notwendig. Ein normaler Anwender hat wegen des hohen Risikos nicht die Berechtigung, Installationen durchzuführen.

Ausführbare Installationsprogramme, die (beispielsweise) mit Inno Setup, Nullsoft Scriptable Install System, WiX Toolset etc. erzeugt wurden, sowie selbstextrahierende Archive, die (beispielsweise) von 7-Zip, IExpress, WinRAR, WinZip etc. erzeugt wurden, sind insbesondere dann, wenn sie in von normalen Anwendern beschreibbaren Verzeichnissen wie dem Downloads- oder Temp-Ordner ausgeführt werden, anfällig für DLL Hijacking.

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 bestimmten Zeitpunkt zurückzusetzen. Dies ist auf produktiv eingesetzten Servern wichtig, wenn mehrere gemeinsam installierte Patches zu einem Fehlverhalten der Maschine geführt haben.

Mögliche Probleme

Zu klärende Fragen

Anforderungen

Einzelnachweise

  1. Package-Launcher
  2. Carpet Bombing and Directory Poisoning
  3. ACROS Security Blog: Downloads Folder: A Binary Planting Minefield
  4. DLL Hijacking Against Installers In Browser Download Folders for Phish and Profit
  5. Defense in depth -- the Microsoft way (part 10)
  6. Defense in depth -- the Microsoft way (part 11): privilege escalation for dummies
  7. Mitigations for "carpet bombing" alias "directory poisoning" attacks against executable installers
  8. Almost no resp. only some mitigation(s) for "DLL hijacking" via load-time dependencies
  9. ScanNow DLL Search Order Hijacking Vulnerability and Deprecation
Normdaten (Sachbegriff): GND: 4388841-0