Installation (Computer)

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

Die Installation von Software ist der Vorgang, bei dem neue Programme auf einen vorhandenen Computer kopiert und dabei eventuell konfiguriert werden. Dieser Vorgang wird in der Regel ebenfalls durch Programme (sog. Installationsprogramme) realisiert. Zudem wird dieser Vorgang speziell unter dem Betriebssystem Windows auch Setup (englisch für Aufbau oder Konfiguration) genannt. In Anlehnung daran wird die Installation auch als das „Aufsetzen“ bezeichnet.

Ziel[Bearbeiten]

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[Bearbeiten]

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:

  • Das Programm wird mittels eines einfachen Kopiervorgangs an einem beliebigen Ort installiert. Diese Methode ist einfach und intuitiv und die bevorzugte etwa unter Mac OS X. Ein Risiko ist, dass zum Beispiel 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, das heißt 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 X sind dies etwa Dateien vom Typ .pkg oder .mpkg, die mittels des systemeigenen Installationsprogramms geöffnet werden.

Installations-Schritte[Bearbeiten]

Bootstrapping[Bearbeiten]

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[Bearbeiten]

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[Bearbeiten]

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[Bearbeiten]

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.

Konfiguration[Bearbeiten]

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[Bearbeiten]

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:

  • Kann die zu aktualisierende Datei ausgetauscht werden, ohne dass die Änderung wirksam wird, ist es ausreichend, den Dienst (zum Beispiel die grafische Benutzeroberfläche oder den Druckdienst) beziehungsweise das System neu zu starten, sodass 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 Systems 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 oft der Fall.

Sicherheitsaspekte[Bearbeiten]

Für die Installation von Software sind bei aktuellen Betriebssystemen (Linux, Windows, Mac OS 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 bestimmten Zeitpunkt zurückzusetzen. Dies ist auf produktiv eingesetzten Servern wichtig, wenn mehrere gemeinsam installierte Patches zu einem Fehlverhalten der Maschine geführt haben.

Verfahren[Bearbeiten]

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

  • Bei Windows: Hotfixes und Service Packs: Nur bestimmte Teile des Produkts werden aktualisiert. Setzt eine vorhandene Installation voraus. Auf der Windows Installer-Technologie basierende Update-Pakete sowie Updates für Windows selbst können in der Regel auch in die Installationsdateien integriert werden, was Slipstreaming genannt wird.
  • Inkrementelle Installation: Periodisch oder durch Aufruf des Anwenders prüft das Programm anhand einer zentralen Quelle (zum Beispiel einer im Internet abgelegten Liste), ob die installierte Version aktuell ist. Falls die Version veraltet ist und aktualisiert werden kann, fragt das Programm meist beim Anwender nach und lädt dann gezielt diejenigen Dateien herunter, die aktualisiert werden müssen.
  • Automatische Aktualisierung / Replikation: Bei jedem Start des Programms wird überprüft, ob die installierte Version aktuell ist. Falls Aktualisierungen verfügbar sind, werden diese ggf. ohne Rückfrage an den Anwender automatisch heruntergeladen und installiert. Dieses Verfahren funktioniert nur, wenn verlässliche und schnelle Netzwerkverbindungen vorhanden sind.
  • Server-Installation: Das Programm wird gar nicht mehr auf dem Computer des Anwenders („Client“) installiert, sondern zentral auf einem Server abgelegt. Beim Start des Programms vom Client aus (Link) wird es über das Netzwerk in den Arbeitsspeicher des Clients geladen.
  • Server-Anwendung: Die Anwendung wird nicht mehr auf dem Computer des Anwenders („Client“) installiert, sondern stattdessen auf dem Server installiert und ausgeführt. Beispiele hierfür sind Windows Terminal Services, Web-Anwendungen (besser HTTP-Anwendungen), Berichtgeneratoren und Backup-Office-Produkte.
  • Unbeaufsichtigte Installation: Die Installation erfolgt ohne Benutzereingriff. Die benötigten Einstellungen werden vorher in einem Skript 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 Einsprungspunkt 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 Verantwortlichen beim Kunden gestartet und nicht wie bei Viren gegen den Willen des Anwenders.

Installationswerkzeuge[Bearbeiten]

  • RPM, ein allgemeines Paketmanagement für Linux, das unter anderem von SuSE Linux, Red Hat und Mandriva Linux 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 und Ubuntu
  • 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 (Mac OS X), engl. „Installer“: Standard-Installationsprogramm von Mac OS X, Bestandteil des Betriebssystems.
  • InstallShield, einer der meistverwendeten Installer für Windows-Systeme
  • Inno Setup, freies Installationssystem für Windows
  • Nullsoft Scriptable Install System, ein freies, unter Windows weitverbreitetes Tool zur Erstellung von Installations-Programmen, welches über eine einfache, aber mächtige Skript-Sprache verfügt und selbst nur wenig Aufwand benötigt.
  • InstallerFramework, eine auf dem .Net Framework basierende Bibliothek für Setups.
  • WarpIn für OS/2 und eComStation

Mögliche Probleme[Bearbeiten]

  • 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-Konflikt

Zu klärende Fragen[Bearbeiten]

  • 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 zum Beispiel Viren einzuschleusen)?

Anforderungen[Bearbeiten]

  • 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[Bearbeiten]

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