Unterschied zwischen einer eigenständigen ausführbaren Datei und einer installierten ausführbaren Datei?

Unterschied zwischen einer eigenständigen ausführbaren Datei und einer installierten ausführbaren Datei?

Zumindest unter Windows ist mir aufgefallen, dass Sie eine direkte, statisch verknüpfte ausführbare Datei herunterladen und direkt starten oder Ihr eigenes Programm schreiben und es (auch dynamisch) ausführen können, ohne es installieren zu müssen.

Damit komme ich zu meinem Hauptpunkt ... was ist der Zweck des Installationsprozesses? Ich meine, abgesehen vielleicht vonWindows-Registrierung. Aus praktischen Gründen und für die Nutzung ist es jedoch möglich, ein einzelnes, unabhängiges, eigenständiges Programm zu haben, das ausgeführt, auf einem nichtflüchtigen Speicher gespeichert und über das Dateisystem des Geräts, auf dem es sich befindet, aufgerufen und auf dem Betriebssystem ausgeführt werden kann. Was ist also das große Problem mit all diesem „Installieren Sie dies“-Geschäft, wenn viele großartige Programme praktisch jeder Größenordnung perfekt funktionieren können, ohne eine Installationskonfiguration zu durchlaufen? Es verwirrt mich ein wenig, und abgesehen von einer Datenbank oder anderen Metadaten-/Zugriffskonfigurationssystemen, was ist hier der wirkliche Unterschied, wenn Letzteres (eine installierte ausführbare Datei) genauso funktioniert und funktioniert wie ein eigenständiges Programm?

Gibt es hier einen mir unbekannten Unterschied zwischen einem nicht installierten und einem installierten Programm?

PS: Dies muss nicht nur für Windows-Betriebssysteme gelten, sondern für alle, die eine ähnliche Funktion implementieren.

Antwort1

Es gibt mehrere Gründe, warum Programme als Installationsprogramme und nicht als eigenständige ausführbare Dateien bereitgestellt werden:

Bedenken hinsichtlich der Dateigröße

  • Programme mit vielen, großen Abhängigkeiten können webbasierte Installationsprogramme bündeln, die die Abhängigkeiten herunterladen und an einem gemeinsamen Ort ablegen, sodass sie von mehreren Programmen gemeinsam genutzt werden können. DirectX ist beispielsweise eine sehr große Bibliothek. Wenn jedes einzelne Programm auf Ihrem System, das von DirectX abhängt, einfach die gesamte DirectX-Laufzeit damit bündeln würde, würde dies eine Menge Speicherplatz beanspruchen. Dies scheint im Zeitalter von 4-TB-Festplatten keine Rolle zu spielen, aber bedenken Sie, dass SSDs eine viel geringere Kapazität haben und auf Ultrabooks immer häufiger zum Einsatz kommen, einige mit nur 64 GB Speicher. Und natürlich gibt es neben DirectX noch viele andere gemeinsam genutzte Bibliotheken.

  • Programme, die sowohl sehr groß als auch ständig aktualisiert sind, werden am besten als Sammlung vieler kleiner Dateien verteilt, zusammen mit einem Start- oder Aktualisierungsprogramm, das im Internet nach Updates sucht und, falls ein Update vorhanden ist, nur die erforderlichen Änderungen herunterlädt. Wenn alle großen Programme als eine einzige monolithische ausführbare Datei ausgeliefert würden, ist es sehr wahrscheinlich, dass der Patch-Prozess das erneute Herunterladen der gesamten ausführbaren Datei erfordern würde, da das Patchen der laufenden ausführbaren Datei auf der Festplatte aufgrund von Dateisperren nahezu unmöglich ist. Da das Aktualisierungsprogramm außerdem wissen muss, wo sich seine Dateien befinden, speichert es diesen Verzeichnispfad häufig an einem bekannten Ort in der Registrierung.

Bedenken hinsichtlich der Benutzerfreundlichkeit

  • Installationsprogramme für sehr große Programme wie Visual Studio und Microsoft Office ermöglichen es dem Benutzer, die Installation bestimmter Funktionen abzuwählen, wenn er weiß, dass er sie nie brauchen wird. Dies hat drei potenzielle Vorteile: Es reduziert den Speicherplatzverbrauch, es kann die Downloadzeit und den Bandbreitenverbrauch reduzieren, wenn das Installationsprogramm ein Web-Downloader ist, und es kann „Unordnung“ und „Aufblähung“ auf dem Computer des Benutzers reduzieren, weniger Startmenü-/Desktopverknüpfungen, weniger Startprogramme usw.

  • Installationsprogramme für komplizierte Programme verfügen häufig über Konfigurationsoptionen, die der Benutzer mithilfe einer benutzerfreundlichen grafischen Oberfläche als Teil des Installationsprogramms einrichten kann. Sehen Sie sich beispielsweise die Installationsprogramme für MySQL oder SQL Server an, die Sie durch den gesamten Prozess der Einrichtung und Inbetriebnahme Ihres Datenbankservers führen können, bevor Sie im Installationsprogramm überhaupt auf „Fertig stellen“ klicken.

  • Installateure können den Benutzer nach erforderlichen Informationen wie Lizenzschlüsseln fragen, die nur einmal eingegeben werden müssen. Dies kann das Design des Programms selbst vereinfachen und die Anzahl der Dinge reduzieren, die es beim Start tun und überprüfen muss. Dies gibt dem Benutzer auch die Gewissheit, dasseinmalDas Programm ist erfolgreich installiert und sollte „einfach funktionieren“ – es gibt im Programm keine weiteren Fallstricke, die Sie von der Nutzung abhalten könnten.

Kompatibilitätsbedenken

  • Einige Programme stehen in Konflikt mit anderen Programmen. Dies ist eine einfache und bedauerliche Tatsache der Softwareentwicklung. Bevor Sie ein Programm installieren, das bekanntermaßen Konflikte mit anderen Programmen aufweist, ist es oft hilfreich, zunächst das System zu überprüfen, um festzustellen, ob ein inkompatibles Programm installiert ist. Der Benutzer kann dann gewarnt werden, wenn dies der Fall ist. Beispielsweise besteht in älteren Versionen von VMware und VirtualBox ein sehr gefährliches Inkompatibilitätspotenzial, das zu einem Blue Screen of Death führte, da ein Programm versuchte, eine spezielle Anweisung für den Virtualisierungsprozessor zu verwenden, nachdem diese bereits vom anderen Produkt für den Benutzer reserviert war. Wenn Sie dem Benutzer einfach das Endprodukt ohne Installationsprogramm zur Verfügung stellen würden, müssten Sie zunächst auf das Vorhandensein inkompatibler Produkte prüfen.jedenStart Ihres Programms, was den Programmstart verlangsamen könnte.

  • Programme können von anderen Systemkomponenten abhängig sein, die nur systemweit und nicht benutzerbezogen installiert werden können. Zur Installation dieser speziellen Systemkomponenten sind normalerweise Administratorrechte erforderlich und es muss ein Installationsprogramm ausgeführt werden.

Erweiterte Privilegien und besondere Services

  • Einige Programme sind für ihre Funktionalität auf Änderungen am Betriebssystem angewiesen, und diese Änderungen können nicht einfach implementiert werden, ohne dass ein Installationsprogramm mit Administratorrechten sie durchführt. Beispielsweise können Programme, die Treiber oder Kernelmodule installieren, wie Wireshark, nichteinfachausgeführt werden, da Sie die Kernelmoduskomponenten unbedingt in separaten Dateien ausliefern müssen. Im absolut besten Fall müssten Sie den Benutzer trotzdem manuell ein Archiv entpacken lassen und dann eine Art Installationsprogramm für den Gerätetreiber ausführen lassen. Dienste sind ein weiteres Beispiel für etwas, für dessen Installation Administratorrechte erforderlich sind. Installationssoftware ist besonders gut darin, auf elegante Weise Administratorrechte zu erhalten, ohne dass das Hauptprogramm selbst bei jeder Ausführung Administratorrechte anfordern muss (dies wäre in vielen Fällen ein unnötiges Sicherheitsrisiko).

Nachdem wir alle diese Gründe für die Nützlichkeit von Installern genannt haben, hier noch ein paar Beobachtungen von der anderen Seite:

  • Viele Programme, selbst solche, die nur als Installationsprogramm zum Download verfügbar sind, das Administratorrechte erfordert, können zwangsweise aus ihren Installationsprogrammen „entpackt“ und direkt ausgeführt werden, ohne sie zu installieren. Andere Programme, insbesondere Open Source-Programme, werden durchPortableAppsEs ist bemerkenswert, dassmancheProgramme weisen beim Entpacken aus ihrem Installationsprogramm eine eingeschränkte Funktionalität auf, es treten Fehler oder andere Probleme auf.

  • Auf anderen Betriebssystemen als Windows ist es fast immer möglich, Programme einfach herunterzuladen (oder zu kompilieren) und sie als normaler Benutzer auszuführen, ohne Root-Rechte zu erhalten. Es gibt einige Ausnahmen in Bezug auf Pakete, die ein Kernbestandteil des Betriebssystems sind, aber die meisten Benutzeranwendungen können Sie in Ihrem Home-Verzeichnis ausführen, ohne sie mit dem Paketmanager systemweit zu installieren. Windows ist insofern ein Sonderfall, als die meisten Desktop-Programme unter Windows über ein Installationsprogramm verfügen und normalerweise nicht auf andere Weise installiert werden können.

  • Selbst auf Nicht-Windows-Plattformen verfügen Programme, die ein Kernelmodul laden müssen, über eine Art Installationsprogramm, das das Kernelmodul kompiliert und im richtigen Verzeichnis installiert. Sie können auch ein Installationsprogramm erwarten, wenn das Programm einDaemondas über ein Systemdienstskript gestartet wird, z. B. in /etc/init.d. Diese Art von „Shrinkwrapped Binary“ ist eine weniger verbreitete Verteilungsmethode unter GNU/Linux, aber die meisten Linux-Distributionen stellen die meiste Software immer noch in Form installierbarer Pakete bereit, für deren Installation jeweils Root-Zugriff (Administratorzugriff) erforderlich ist.


Schlussfolgerungen

Sie haben gefragt, warum wir Installateure brauchen. Die kurze Antwort lautet:wir nicht-- jedenfalls nicht streng genommen. Es gibt verschwindend wenige Beispiele für Anwendungen, diekann nicht, im Prinzip in einer einzigen, in sich geschlossenen ausführbaren Datei ohne Ressourcen, ohne Installationsprogramm usw. gebündelt werden. Sogar etwas so Komplexes wie VMware Workstation könnte automatisch Administratorrechte erhalten, das Hypervisor-Kernelmodul in eine Datei auf der Festplatte schreiben und es dynamisch beim Programmstart installieren und alle seine Ressourcen (Bilder, Sounds usw.) gebündelt im Datenabschnitt der ausführbaren Datei ausliefern.

Die Verwendung eines Installationsprogramms istAuswahldie Softwarehersteller vornehmen müssen. Die Verwendung eines Installationsprogramms hat Vor- und Nachteile. Viele Anbieter vertreiben ihre Softwarebeideals Installateur,Undals eigenständige Binärdatei oder zumindest als ZIP-Datei, die einfach entpackt und ausgeführt werden kann. Für Software, die nicht unbedingt ein Installationsprogramm erfordert, ist dies ein sehr pragmatischer Weg, mit dem alle zufrieden sind. Normalerweise ist Software, die nur mit einem Installationsprogramm ausgeliefert wird, Software, die Administratorrechte benötigt, um bestimmte Komponenten von sich selbst zu installieren, da das Installationsprogramm der eleganteste Weg ist, die erforderlichen Rechte zu erhalten.

Persönlich finde ich Installationsprogramme bei meiner täglichen Arbeit sehr lästig, da ich manchmal ein Programm ausführen möchte, ohne dass ich auf dem Computer, den ich verwende, Administratorrechte habe. Ich habe ziemlich viel Erfahrung mit dem manuellen Entpacken von Installationsprogrammen, um die darin enthaltenen Programmdateien zu extrahieren und diese Dateien dann ordnungsgemäß auszuführen. Auf meinem persönlichen PC zu Hause, auf den ich immer Administratorrechte habe, finde ich Installationsprogramme jedoch nützlich und praktisch, da die meisten Installationsprogramme mir nützliche Optionen bieten, z. B. die Möglichkeit, eine Desktopverknüpfung zu erstellen, die ich sonst manuell hätte erstellen müssen.

Antwort2

Der Installationsvorgang berücksichtigt diese Elemente:

  1. ob Sie die erforderliche Bibliothek (API) installiert haben, z. B. die .NET Framework-Version oder Direct X.

  2. Installieren Sie einige zusätzliche System-DLL-Dateien im Systemordner. Wenn der Systemordner diese Dateien (gleiche Version) bereits enthält, ignorieren Sie diesen Schritt. Auf diese Weise benötigen Sie nicht mehrere Kopien derselben DLL-Dateien.

  3. Installieren Sie Verknüpfungen in Ihrem Startmenü oder auf Ihrem Desktop, damit Sie die Anwendung schneller starten können.

  4. Wie gesagt, Änderung der Registrierung. Dieser Schritt kann tatsächlich durchgeführt werden, wenn die Anwendung zum ersten Mal auf diesem Computer ausgeführt wird, er ist also nicht besonders wichtig.

  5. Sehr wichtig: ob Sie eine Software (wie die Google Desktop Bar oder Yahoo! Bar) in Ihren Internet Explorer einbinden möchten. Auf diese Weise generiert eine Menge unabhängige Software Einnahmen für den Entwickler. Vergessen Sie das nicht, wenn Sie kostenlose Software verwenden.

Da es sich hier um eine „ausführbare“ Anwendung handelt, müssen wir nicht näher auf die Schritte eingehen, mit denen ein IE-Add-On oder ähnliche Dinge installiert werden können.

Antwort3

Das eigenständige Programm hat keine externen Abhängigkeiten.

Es muss nicht nur eine EXE-Datei sein, sie kann auch begleitende Bibliotheken und Datendateien enthalten: Entpacken Sie das Archiv in einen Ordner und führen Sie die ausführbare Datei aus. Wenn Sie nur ein Archiv entpacken, wird keine Verknüpfung zum Startmenü hinzugefügt. Sie müssen daher zu dem Ordner navigieren, in dem sich die entpackte Anwendung befindet, und sie von dort aus starten oder manuell eine Verknüpfung dafür im Startmenü erstellen. Viele Computerbenutzer finden dies schwierig.

Einfacher zu bedienen

Ein Installationsprogramm führt den Benutzer durch den Installationsprozess. Sie laden das Installationsprogramm (.exe oder .msi) herunter (ersteres ist für nicht fortgeschrittene Benutzer vorzuziehen) und führen es aus. Es wählt den Installationsordner aus, normalerweise in Program Files, kopiert die Dateien und erstellt eine Verknüpfung im Startmenü. Und schon sind Sie fertig: In den meisten Fällen klicken Sie einfach mehrmals auf Weiter.

Gehen Sie dann zum Startmenü und führen Sie die Anwendung aus. Einige Installationsprogramme bieten die Möglichkeit, die Anwendung nach Abschluss der Installation zu starten.

Wenn die Anwendung Dateien oder Dokumente eines bestimmten Typs öffnet, registriert das Installationsprogramm sie bei der Shell. So können Sie auf die Datei klicken, um sie zu öffnen.

Lizenzvereinbarung

Viele Anwendungen, sowohl kommerzielle als auch kostenlose, erfordern, dass Sie die Lizenzvereinbarung akzeptieren, bevor Sie die Anwendung verwenden können. Die Installation wird erst fortgesetzt, wenn Sie bestätigen, dass Sie den Lizenzbedingungen zustimmen. Auch wenn Sie die Lizenz nicht gelesen haben, haben Sie ihr zugestimmt.

Abhängigkeiten

Manchmal reicht es nicht aus, einfach die ausführbaren Dateien zu kopieren. Anwendungen verwenden häufig gemeinsam genutzte Komponenten oder spezielle Laufzeitbibliotheken. Beispielsweise muss die .Net Framework-Laufzeit installiert sein, um die für .Net geschriebene Anwendung auszuführen; sogar die Visual C++-Laufzeit muss installiert sein, wenn sie nicht statisch verknüpft ist. Das Installationsprogramm stellt sicher, dass alle Abhängigkeiten erfüllt sind.

Wenn eine Anwendung aus mehreren .exe- und/oder .dll-Dateien besteht, reduziert die dynamische Verknüpfung mit der Visual C++-Runtime den Speicherplatz. Wenn .exe und .dll statisch verknüpft sind, wird die Runtime in jeder einzelnen Datei dupliziert.

Die Lizenzbedingungen einer Bibliothek erlauben möglicherweise keine statische Verknüpfung.

Sicherheit

Wenn in der Runtime eine Sicherheitslücke gefunden wird, kann diese separat von der Anwendung aktualisiert werden. Updates für die .Net- und Visual C++-Runtime werden automatisch über Windows Update installiert.

Wenn ausführbare Dateien und Bibliotheken statisch verknüpft sind, muss der Anwendungsanbieter die Anwendung neu kompilieren und die aktualisierte Version veröffentlichen. Die Verwendung einer gemeinsam genutzten Laufzeit reduziert daher die Kosten der Anwendungswartung für Entwickler und Anbieter.

Die Installation Program Filesbietet außerdem eine sicherere Umgebung: Die Dateien dort können ohne Administratorrechte nicht geändert oder gelöscht werden.

Registrierung

Viele Windows-Anwendungen sind auf Einträge in der Registrierung angewiesen. Wenn die Anwendung COM verwendet, müssen alle Objekte registriert sein. Andernfalls kann die Anwendung das erforderliche Objekt nicht erstellen und wird nicht gestartet.

Antwort4

Kurze Antwort: Für die Ausführung einer eigenständigen EXE müssen auf dem Computer keine Bibliotheken installiert sein, und es sind keine Registrierungseinträge oder andere Komponenten erforderlich.

Eine installierte Dateidürfenkann eine eigenständige Version eines Installationspakets sein, ist aber im Allgemeinen von verschiedenen parallel dazu installierten Komponenten und Bibliotheken abhängig.

In vielen Fällen durchUniversal-Extraktor(inoffizielles Update:Hier), können Sie den Inhalt eines Installationsprogramms extrahieren und ein Programm ohne Administratorrechte in Windows ausführen. MSI-Installationsprogramme können entpackt werden mitwenigermsi.

In den meisten anderen Betriebssystemen können alle Programme ohne Root-/Administratorrechte über benutzerspezifische „bin“, „lib“ und andere Verzeichnisse im Home-Verzeichnis ausgeführt werden. Persönlich verachte ich Installationsprogramme die meiste Zeit, weil sie es mir erschweren, Programme ohne Administratorrechte zu verwenden, wenn ich diese nicht habe. Aber große Unternehmen bieten sie auf diese Weise an, um den Prozess für den durchschnittlichen Endbenutzer zu vereinfachen.

verwandte Informationen