Warum sind nicht alle Anwendungen portabel?


45

In letzter Zeit habe ich versucht, viel weniger Dinge auf meinem Windows-Computer zu installieren (ich hasse Installer - ich muss wissen, wo Programme Dinge ablegen ...) und mich stattdessen für tragbare oder eigenständige Versionen von Anwendungen entschieden.

Ich habe sie alle in einem "Programme" -Verzeichnis auf einem Laufwerk abgelegt, das von meiner Windows-Partition getrennt ist. Wenn ich sie neu installiere, habe ich alle meine Anwendungen mit minimalem Aufwand zur Verfügung und auf der positiven Seite erhalte ich eine schöne, saubere Einrichtung.

Für Anwendungen wie Office und Creative Suite muss ich immer noch einen schrecklich langen Installationsprozess durchlaufen, bei dem tausend zufällige Bibliotheken und Tools auf meinem System verteilt werden.

Warum müssen Windows-Apps noch installiert werden? Warum können wir Photoshop nicht einfach in einen Ordner à la OSX ziehen und es einfach funktionieren lassen? Konzentriert sich noch jemand auf tragbare Apps, oder bin ich nur ein OCD für das Ganze?


3
Antworten auf die Frage erklären das neugierige "Warum". Das Ausrufezeichen "aber warum" bleibt dennoch (wie in "aber warum können wir nicht alle einfach miteinander auskommen").
dbkk101

2
Ich hasse auch Installateure. nichts falsch mit dir
Nick

2
Das sieht nach einer falschen Frage aus. Wenn Sie tragbare Apps verwenden möchten, scheint die richtige Frage zu lauten: "Welche Programme sind tragbar?". Zum Beispiel könnten Sie denken, dass Sie MS Word benötigen, wenn Sie wirklich ein Programm benötigen, das .doc-Datendateien lesen und schreiben kann. Open Office erledigt das ... und im Gegensatz zu MS Word ist es in einem portablen Format verfügbar ... Ich habe eine Kopie davon (und Abiword) auf einem Flash-Laufwerk, das die ganze Zeit über an meinen Laptop angeschlossen ist. Es gibt einige tragbare Apps. portablelinuxapps.org bietet 184 für Linux an, während portableapps.com/apps

Der Rest von Bills Kommentar: ... eine Menü-App für Windows [wohl beide enthalten eine gute Auswahl an einfachen Hilfsprogrammen]). Wählen Sie die gewünschten Programme aus und werfen Sie die nicht tragbaren Programme weg, auf die Sie verzichten können. Die meisten meiner Apps befinden sich auf einem USB-Stick. Dies vereinfacht zumindest die Spaghettisuppe von Dateien auf Ihrer Festplatte.
Studiohack

Auch scheint mir, dass die besten Werkzeuge portabel sind. Ich könnte voreingenommen sein.
Vlastimil Ovčáčík

Antworten:


35

Installateure sind das Ergebnis jahrelanger Entwicklung und ein bisschen (vereinfachter) Geschichte hilft zu verstehen, warum sie das tun, was sie tun.

Das Windows 3.1-Modell schlug Konfigurationsdateien im config.ini-Stil pro Anwendung vor, die gemeinsam genutzte Bibliotheken unterstützen, die in Systemordner abgelegt werden, um Duplikate und verschwendeten Speicherplatz zu vermeiden.

Windows 95 führte die Registrierung ein, die einen zentralen Speicher für die Anwendungskonfiguration ermöglicht und viele Konfigurationsdateien ersetzt. Noch wichtiger ist, dass die Windows-Konfiguration am selben Ort gespeichert wurde.

Die Registrierung wurde aufgebläht, weil die Anwendungen nicht nachträglich bereinigt wurden. DLL Hölle geschah als Ergebnis mehrerer Versionen der gleichen gemeinsam genutzten Bibliotheken, die sich gegenseitig überschrieben.

.NET führte das Konzept von app.config ein (fast ini-Dateien mit der zweiten Markierung, diesmal mit etwas mehr Struktur, die Entwicklern das Schreiben manueller Parser erspart). Der GAC wurde in die Versionsfreigabe von Assemblys eingeführt, um die DLL-Hölle zu verhindern.

In Windows XP und Windows Vista hat Microsoft versucht, den Benutzerbereich als Speicherort für Benutzerdaten und Konfigurationsdateien an einem einzigen Standardspeicherort zu definieren, um Roaming-Profile und eine einfache Migration (kopieren Sie einfach Ihr Profil) mit den in den Programmdateien installierten Anwendungen zu ermöglichen .

Der Grund dafür liegt vermutlich darin, dass "Anwendungen in Windows so konzipiert sind, dass sie an einem Ort gespeichert werden, ihre gemeinsamen Abhängigkeiten an einem anderen Ort und die benutzerspezifischen Daten an einem anderen Ort", was dem Konzept des Kopierens eines einzelnen Orts ziemlich entgegensteht.

.. und das ist, bevor Sie Benutzerkonten konfigurieren und Sicherheitsberechtigungen einrichten und sicherstellen, Updates herunterladen und Windows-Dienste installieren müssen ...

xcopy ist der "einfache Fall" und passt mit Sicherheit nicht zu allem.


1
Nette, einfache Erklärung!
Alex

7
Ein weiterer wichtiger Grund für Installationsprogramme (insbesondere für Office) ist, dass kein Benutzer einen anderen Benutzer auf demselben System beeinflussen kann, wenn er kein Administrator ist. Wenn ein Benutzer Office 2007 mit rund 500 MB verwenden möchte, muss er über eine eigene lokale Kopie verfügen. Das wären 1,5 GB für 3 Benutzer auf demselben System! Google Chrome wird in Ihrem lokalen Nutzerverzeichnis installiert. Wenn Sie also 10 Nutzer haben, die alle über Chrome verfügen, müssen 10 verschiedene Versionen aktualisiert und gewartet werden. Offensichtlich gibt es Vor- und Nachteile für eine Installation pro Benutzer im Vergleich zu einer zentralen Bereitstellung.
Joshua

1
Einige Anwendungen, wie z. B. Photoshop (mindestens vor CS4), können einfach kopiert werden und erstellen beim Start die erforderlichen Benutzerkonfigurationsspeicher und -dateien. Auch die meisten .NET-Anwendungen sind von Haus aus portabel, aber Endbenutzer erwarten als nächstes fertige Installationsprogramme - viele, die nicht einmal wissen, was ein Dateisystem ist.
Oskar Duveborn,

Es kann auch angemerkt werden , dass , obwohl Anwendungen gemeint zu dividieren Einstellungen / Bibliotheken / Besonderheiten in verschiedenen Orten, ist es nicht ein gut Verbreitung Brauch ist. Ich finde sehr oft Einstellungen für verschiedene Anwendungen, die in Dateien in ihren Programmverzeichnissen gespeichert sind, und sehr oft sind Bibliotheken, die gemeinsam genutzt werden könnten, statisch im Programmverzeichnis verknüpft. Da es für die Programmierer keine wirklichen Vorteile gibt, Dinge auf die eine oder andere Weise zu tun, ist der Anreiz, sich an die Regeln zu halten, schwach und es kommt zur Entwicklung von Wild-West-Anwendungen :-). Ich denke auch, dass die Tradition stark ist.
Daniel Andersson

Der GAC ist nur das zweite Mal, dass DLL die Hölle los wird. Nettes Konzept, aber im wirklichen Leben kommt es zu Verwirrung, da verschiedene ausführbare Dateien mit verschiedenen Versionen derselben Datei verknüpft sind und einige Versionen dieser Dateien möglicherweise Sicherheitslücken aufweisen. Es ist ein gewaltiges Durcheinander, mit dem Sie fertig werden müssen, wenn Sie eine sichere Umgebung benötigen. Jetzt müssen Sie tatsächlich verschiedene Versionen derselben Datei patchen, um dieselbe Sicherheitslücke zu schließen. Hurra! Es sollte beachtet werden, dass Richtlinien und obligatorische Weiterleitungen helfen können, aber das heißt, eine Pflasterung hilft gegen offene Wunden.
Stein Åsmul

12

XCOPY Deployment wurde von Microsoft wie angekündigt die vor Weg der Zukunft ein paar Jahren. Immer noch nichts :)

In der Zwischenzeit könnte Sie die Plattform PortableApps.com interessieren.


7

Tolle Frage, ich habe vor einiger Zeit eine verwandte Frage zu Stack Overflow gestellt.

Die Antwort scheint oft zu sein "weil wir es in der Vergangenheit so gemacht haben". Tut mir leid, aber das geht bei mir nicht auf.

Ein paar andere haben gesagt, der Hauptgrund liegt in der Registrierung. Wenn Sie über einen Gerätetreiber oder eine andere COM-Komponente usw. sprechen, ist dies möglicherweise erforderlich, jedoch nicht für GUI-Anwendungen wie Textverarbeitungsprogramme oder Tabellenkalkulationen.

Es ist durchaus möglich, eine Anwendung zu schreiben, die entweder beim Start nach den erforderlichen Registrierungseinstellungen sucht und den Benutzer dazu auffordert / Standardeinstellungen verwendet. Wie viele andere protable Apps auch, teilen Sie dem Benutzer mit, dass die Betriebssystemintegration derzeit eingeschränkt ist, da Sie im portablen Modus ausgeführt werden.

Installateure haben oft auch viel "Wissen" über die Funktionsweise der Anwendung. Wenn sich die Anwendung ändert, müssen Sie häufig auch das Installationsprogramm aktualisieren. Dies ist eine klassische Ursache für Fehler / Probleme, die ich in meiner Zeitprogrammierung gesehen habe.

Es ist der One-Size-Fit-Ansatz.


6

Einfache und klare Antwort: Es ist einfach eine Frage, wer die Kontrolle hat. Heutzutage wird die meiste Software von Unternehmensriesen für das Unternehmens- oder institutionelle Umfeld entwickelt, in dem Benutzern gesagt wird, was sie tun sollen, anstatt ihren Computern mitzuteilen, was sie für sie tun sollen.

Ihre Frage ist äußerst wichtig, da sie eine grundlegende Frage nach den Rechten und Freiheiten des Einzelnen aufwirft, die nicht von Tyrannen wie in alten Gesellschaften, sondern von der Gier der Unternehmen und der Notwendigkeit der Wenigen, die Vielen zu kontrollieren, immer mehr untergraben wird.

Tatsächlich scheinen wir vergessen zu haben, dass genau dieselben Leute, die früher die Tyrannei von Giganten wie IBM entlarvten, zu den IBMs der heutigen Zeit geworden sind ... Schauen Sie sich die Geschäftspraktiken von Microsoft, Apple, genau an und Adobe, um nur einige zu nennen, und sagen mir mit aller Deutlichkeit, dass ihre restriktiven Lizenzen harmloser sind als die Geschäftspraktiken von IBM, genau wie die von IBM, die durch ihre Offenheit den Weg zur Revolution im Bereich Personal Computing geebnet haben ...

Ich habe im Laufe der Jahre viele in sich geschlossene, tragbare Apps verwendet und sie haben sich ausnahmslos als die effektivsten, schnellsten und kleinsten in Bezug auf Stellfläche und Ressourcen erwiesen und nicht zuletzt sind sie ihrer Bloatware überlegen Kollegen, aber die meiste Zeit sind sie auch frei.

Es ist höchste Zeit für eine zweite PC-Revolution. Ein Schritt in die richtige Richtung ist die Verbesserung der Portabilität durch Reduzierung von Überlastungen und Feststellung, wo Einstellungen in einem bestimmten Ordner an einem bestimmten physischen Speicherort auf einem physischen Medium gespeichert sind.


5

Eine Kombination aus Registrierung und Benutzerspeicher. Die Registrierung ist von entscheidender Bedeutung, insbesondere wenn Ihre Anwendung auf COM basiert (was eine Registrierung erfordert, was in der Registrierung geschieht). Der benutzerspezifische Speicher (der Konfiguration usw.) ist ebenfalls eine wichtige Komponente. Der einzig gute Weg, dies zu tun, besteht darin, es in einigen speziell entworfenen Verzeichnissen zu speichern (siehe Isolierter Speicher ).


Genau. Wie kann das Betriebssystem die zu ladende EXE- oder DLL-Datei ohne festen Speicherort finden? "Set oExcelApp = CreateObject (" EXCEL.APPLICATION ")" muss irgendwie funktionieren.
Zan Lynx

4

Meistens aufgrund der Windows-Registrierung - obwohl sich Ihre Programme in einem bestimmten Verzeichnis befinden, werden Einstellungen häufig in der Registrierung gespeichert.

Dies kann auch daran liegen, dass das Programm Dateien in anderen Verzeichnissen als dem Installationsverzeichnis auf Ihrem Computer ablegt (z. B. system32).


3

Ein großer Vorteil für Installateure gegenüber dem Installationstyp Xcopy / Portable ist die Selbstreparatur.

In einer App, die das Windows Installer-System ordnungsgemäß verwendet, werden alle möglichen Informationen dazu in der Windows Installer-Datenbank auf Ihrem Computer gespeichert sowie häufig ein Cache mit wichtigen Teilen der Setupdateien.

Wenn die App aus irgendeinem Grund abstürzt (etwas anderes löscht / ersetzt eine Datei, die Registrierung wird beschädigt, Festplattenprobleme, der Benutzer löscht die Verknüpfung usw.), prüft das Installationsprogramm bei jedem Start die Schlüsseldateien und -schlüssel ersetzt, wenn sie nicht vorhanden sind, oder Sie können in der App unter "Software" auf "Reparieren" klicken.


Warum ist das einzige, woran ich denken kann, wenn ich das Adobe Reader-Desktopsymbol lese? Dieser ist so wahnsinnig selbstreparierend, dass es den Verstand
verwirrt

2

Ich denke, das hängt zum Teil mit der großen Menge an Cruft-Windows-Apps zusammen. Beispiel: Registrierungsschlüssel, Benutzerdaten (/ Users // AppData). Vielleicht geht OSX einfach besser / anders damit um.

Andererseits ist es nicht unmöglich, Apps zu erstellen, die Sie einfach aus einem Archiv extrahieren können - ich freue mich immer, wenn dies der Fall ist.


2

Das .Net Framework ist die Plattform, um diese Art von Funktionalität zu ermöglichen, und die meisten Installationsprogramme werden nur verwendet, weil dies das ist, was normale Benutzer gewohnt sind. Genauso wie Mac-Benutzer es gewohnt sind, Dateien in den Anwendungsordner zu kopieren.

Die meisten Installationsprogramme erweitern einfach Dateien in den Ordner "Programme" und erstellen eine Verknüpfung. Es ist eher ein Fall von dem, was Benutzer wissen, und oft ist es einfach zu einfach, den Prozess selbst dann beizubehalten, wenn die Anwendung portierbar ist.


2

Einige Programme setzen voraus, dass sich der Installationsort in der Registrierung befindet, bei anderen ist der Installationsort möglicherweise fest im Programm programmiert (dies war bei perl.exe der Fall).

Grundsätzlich liegt der Hauptgrund darin, dass Programmierer den einfachen Ausweg gewählt und etwas in die Programme hartcodiert haben, entweder Registrierungsschlüssel oder tatsächlich hartcodierte Pfade.


2

Viele Windows-Anwendungen müssen Systemumgebungen oder -dienste wie SQL Server, IIS, WMI, Sicherheitsdomänen, Active Directory und viele andere verwenden. Ein typischer Benutzer weiß möglicherweise nicht, wie er diese konfigurieren soll, oder hat möglicherweise nicht einmal Zugriff darauf.

Anwendungen wie Microsoft Office sind keine einzelnen Dateien. Sie enthalten Dutzende von Dateien, ausführbaren Dateien, Dienstprogrammen, Diensten, Vorlagen, Plug-Ins, Treibern usw. Wenn Sie eine Anwendung installieren, können Sie nicht einfach alles überschreiben, was die neue Anwendung verwendet. Sie muss in das passen, was bereits vorhanden ist. Windows-Installer können nicht nur Dateien kopieren, sondern auch die Systemumgebung abfragen, Skripts ausführen und Dienste installieren und den Computer so einrichten, als ob sie ein Administrator wären.

dbkk101 fragt, warum Windows-Apps "nicht alle miteinander auskommen können". Sie können, dafür sind Installateure da.


2

Bei manchen Programmen ist die Installation zwar albern, aber es geht um viel mehr als nur um das "Ziehen einer Datei in ein Programmverzeichnis".

Zumindest muss ein anständiger Installer die Installationsdatei dekomprimieren und die entsprechenden Verknüpfungen einrichten, damit das Programm einfach entfernt werden kann, wenn es nicht mehr benötigt wird. Ich denke, die Dekomprimierung und das Kopieren dauert wahrscheinlich am längsten.

Dann gibt es freigegebene Dateien - dies gilt insbesondere für die Linux-Welt, jedoch weniger für Windows IMO.

Am wichtigsten ist, dass einige Programme für den Computer konfiguriert werden müssen und einige (ich nehme an, zumindest) versuchen, basierend auf dem Computer zu optimieren, oder zumindest das, woran ich im Dialogfeld von Adobe glaube.

Außerdem habe ich noch nie einen Grund gesehen, auf einer separaten Partition zu installieren. Sie neigen dazu, alle Ihre Registrierungswerte und Konfigurationseinstellungen zu verlieren. Außerdem bevorzuge ich diesen Verlust, da er das Aufblähen von Windows verringert.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.