Warum sind nicht alle Anwendungen portierbar?

3371
Tom

Ich habe vor kurzem versucht, Dinge auf meinem Windows-Computer viel weniger zu installieren (ich hasse Installationsprogramme - ich muss wissen, wo Programme Sachen ablegen ...) und wählte stattdessen tragbare oder eigenständige Versionen von Anwendungen.

Ich habe sie alle in einem 'Programme'-Verzeichnis auf einem Laufwerk separat von meiner Windows-Partition abgelegt. Wenn ich neu installiere, stehen mir alle Anwendungen mit minimalem Aufwand zur Verfügung, und auf der positiven Seite bekomme ich ein schönes, sauberes Setup.

Bei Anwendungen wie Office und Creative Suite muss ich immer noch einen schrecklich langen Installationsprozess durchlaufen, bei dem tausend zufällige Bibliotheken und Tools auf mein System geworfen werden.

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

41
Antworten auf die Frage erklären das neugierige "Warum". Das ausrufezeichen "warum aber" bleibt jedoch bestehen (wie in "aber warum können wir nicht alle miteinander auskommen"). dbkk101 vor 14 Jahren 3
Ich hasse auch Installateure. nichts falsch mit dir Nick vor 14 Jahren 2
Das sieht nach der falschen Frage aus. Wenn Sie tragbare Apps verwenden möchten, lautet die richtige Frage: "Welche Programme sind portabel?". Beispielsweise denken Sie, dass Sie MS Word benötigen, wenn Sie wirklich ein Programm benötigen, das .doc-Dateien lesen und schreiben kann. Open Office macht das ... und anders als MS Word ist es in einem portablen Format verfügbar ... Ich habe eine Kopie davon (und Abiword) auf einem Flash-Laufwerk, das die gesamte Zeit in meinen Laptop steckt. Es gibt einige tragbare Apps. http://portablelinuxapps.org/ bietet 184 für Linux, während http://portableapps.com/apps 232 + bietet vor 13 Jahren 2
** Der Rest von Bills Kommentar: ** ... eine Menü-App für Windows [beide enthalten eine gute Auswahl an trivialen Dienstprogrammen]). Wählen Sie die gewünschten Programme aus und geben Sie die nicht-portablen Programme aus, auf die Sie ohne die meisten meiner Apps auf einem USB-Stick zugreifen können. Zumindest wird dies die Spaghetti-Suppe von Dateien auf Ihrer HD vereinfachen. studiohack vor 13 Jahren 0
Es scheint mir auch, dass die besten Werkzeuge tragbar sind. Ich könnte voreingenommen sein. Vlastimil Ovčáčík vor 8 Jahren 0

12 Antworten auf die Frage

33
DavidWhitney

Installateure sind ein Ergebnis jahrelanger Entwicklung und ein wenig (vereinfachte) 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, wobei gemeinsam genutzte Bibliotheken in Systemordner gestützt werden, um Doppelarbeit und unnötigen Speicherplatz zu vermeiden.

Mit Windows 95 wurde die Registrierung eingeführt, die einen zentralen Speicher für die Anwendungskonfiguration ermöglicht und viele Konfigurationsdateien ersetzt. Noch wichtiger ist, dass die Windows-Konfiguration an derselben Stelle gespeichert wurde.

Die Registrierung wurde aufgebläht, weil Anwendungen nicht nach sich selbst bereinigt wurden. DLL-Hölle ist das Ergebnis von mehreren Versionen derselben gemeinsam genutzten Bibliotheken, die sich überschreiben.

.NET führte das Konzept von app.config ein (fast ini-Dateien markieren 2, diesmal mit etwas mehr Struktur, wodurch Entwickler weniger Zeit mit dem Schreiben von manuellen Parsern haben). Das GAC wurde in Version Shared Assemblys eingeführt, um DLL Hell zu verhindern.

In Windows XP und Windows Vista versuchte Microsoft, den Benutzerbereich als Speicherort für die Speicherung von Benutzerdaten und Konfigurationsdateien an einem einzigen Standardspeicherort zu definieren, um Roaming-Profile und eine einfache Migration (einfach Kopieren Ihres Profils) mit den in Programmdateien installierten Anwendungen zu ermöglichen .

Ich denke, der Grund ist, dass "Anwendungen in Fenstern so konzipiert sind, dass sie an einem Ort leben, ihre gemeinsamen Abhängigkeiten an einem anderen und die benutzerspezifischen Daten an einem anderen."

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

xcopy ist der "einfache Fall" und sicherlich nicht für alles bestens geeignet.

Schöne, einfache Erklärung! alex vor 14 Jahren 1
Ein weiterer wichtiger Grund für Installationsprogramme (insbesondere Office) ist, dass kein Benutzer einen anderen Benutzer auf demselben System beeinflussen kann, wenn er kein Administrator ist. Wenn Office 2007 ein Gewicht von etwa 500 MB hat, muss der Benutzer eine lokale Kopie haben, wenn er sie verwenden möchte. Das wären 1,5 GB für 3 Benutzer auf demselben System! Google Chrome wird in Ihrem lokalen Benutzerverzeichnis installiert. Wenn Sie also 10 Benutzer haben, die alle über Chrome verfügen, sind dies 10 verschiedene Versionen, die aktualisiert und gewartet werden müssen. Es gibt offensichtlich Vor- und Nachteile einer Installation pro Benutzer gegenüber einer zentralen Bereitstellung. Joshua vor 14 Jahren 6
Einige Anwendungen, wie Photoshop (zumindest vor CS4), können einfach kopiert werden. Wenn sie gestartet werden, werden die Benutzerkonfigurationsspeicher und erforderlichen Dateien erstellt. Auch die meisten .NET-Anwendungen sind von Design aus portabel, aber Endbenutzer erwarten nächste Installationsanwender, von denen viele nicht wissen, was ein Dateisystem ist. Oskar Duveborn vor 13 Jahren 1
Es kann auch angemerkt werden, dass, obwohl Anwendungen _meant_ sind, um Einstellungen / Bibliotheken / Besonderheiten an verschiedenen Orten aufzuteilen, dies kein weit verbreiteter Brauch ist. Ich finde häufig Einstellungen für verschiedene Anwendungen, die in Dateien in ihren Programmverzeichnissen gespeichert sind, und sehr häufig werden 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 zu einer Entwicklung der Wildwest-Anwendung :-). Ich denke auch, dass die Tradition stark ist. Daniel Andersson vor 13 Jahren 0
Das GAC ist nur das zweite Kommen von DLL Hölle. Schönes Konzept, aber im wirklichen Leben geraten Sie in Verwirrung, da verschiedene ausführbare Dateien unterschiedliche Versionen derselben Datei binden, und einige Versionen dieser Dateien können Sicherheitslücken aufweisen. Es ist ein gewaltiges Chaos, wenn Sie eine sichere Umgebung benötigen. Jetzt müssen Sie verschiedene Versionen derselben Datei patchen, um dieselbe Sicherheitslücke zu beheben. Hurra! Es sollte beachtet werden, dass Richtlinien und vorgeschriebene Weiterleitungen helfen können, aber das ist, als würde man sagen, eine Bandhilfe hilft bei offenen Wunden. Stein Åsmul vor 12 Jahren 0
12
Piotr Dobrogost

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

In der Zwischenzeit interessieren Sie sich vielleicht für die Plattform von PortableApps.com.

7
Ash

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

Die Antwort scheint oft zu sein "weil wir es in der Vergangenheit so gemacht haben". Sorry, aber das wäscht nicht bei mir.

Ein paar andere haben gesagt, der Hauptgrund liegt in der Registrierung. Wenn Sie von einem Gerätetreiber oder einer anderen COM-Komponente usw. sprechen, ist dies möglicherweise erforderlich, nicht jedoch für GUI-Anwendungen wie Word-Prozessoren oder Tabellenkalkulationen.

Es ist durchaus möglich, eine Anwendung zu schreiben, die entweder beim Start die erforderlichen Registrierungseinstellungen prüft und den Benutzer dazu auffordert / die Standardwerte verwendet. Wie viele protable-Apps derzeit wissen auch die Benutzer, dass die Betriebssystemintegration derzeit eingeschränkt ist, da Sie sich im portablen Modus befinden.

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

Es ist der One-Size-Fit-Ansatz.

6

Einfache und stumpfe Antwort: Es ist einfach eine Frage, wer die Kontrolle hat. Die meiste Software wird heutzutage von Unternehmensriesen für die Unternehmens- oder institutionelle Umgebung entwickelt, in der den Benutzern mitgeteilt wird, was sie tun sollen, anstatt ihren Computern mitzuteilen, was sie für sie tun sollen.

Ihre Frage ist äußerst wichtig, weil sie eine grundlegende Frage nach den individuellen Rechten und Freiheiten aufwirft, die immer mehr untergraben werden, nicht durch Tyrannen wie in alten Gesellschaften, sondern durch die Gier der Unternehmen und die Notwendigkeit der wenigen, die vielen zu kontrollieren.

In der Tat scheinen wir vergessen zu haben, dass genau die gleichen Leute, die die Tyrannei von Giganten wie IBM missachtet haben, zu den IBMs dieser Zeit geworden sind. Schauen Sie sich die Geschäftspraktiken von Microsoft, Apple, genau an und Adobe, um nur einige zu nennen und mir mit einem klaren Gesicht zu sagen, dass mit ihren einschränkenden Lizenzen gütiger sind als die Geschäftspraktiken von IBM, derselbe IBM, der durch seine Offenheit tatsächlich den Weg zur Revolution des Personal Computing führte ...

Ich habe im Laufe der Jahre viele in sich geschlossene, portable Apps verwendet, und ausnahmslos haben sie sich als die effektivsten, schnellsten und kleinsten in Bezug auf Standfläche und Ressourcen erwiesen. 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 Revolution des Personal Computers. Die Verbesserung der Portabilität durch Verringerung der Aufblähung und die Festlegung, wo Einstellungen in einem bestimmten Ordner an einem bestimmten physischen Ort auf einem physischen physischen Medium gespeichert werden, ist ein Schritt in die richtige Richtung.

5
C. Ross

Eine Kombination der Registrierung und des Benutzerspeichers. Die Registrierung ist ein kritischer Teil, insbesondere wenn Ihre Anwendung auf COM basiert (was eine Registrierung erfordert, was in der Registrierung geschieht). Die Speicherung pro Benutzer (der Konfiguration usw.) ist ebenfalls eine wichtige Komponente. Die einzig gute Möglichkeit, dies zu tun, ist das Speichern in einigen speziell dafür vorgesehenen Verzeichnissen (siehe Isolierter Speicher ).

Genau. Wie kann das Betriebssystem die EXE oder DLL ohne festen Speicherort finden? "Set oExcelApp = CreateObject (" EXCEL.APPLICATION ")" muss irgendwie funktionieren. Zan Lynx vor 13 Jahren 0
4
Eric Petroelje

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

Es kann auch sein, dass das Programm Dateien in anderen Verzeichnissen als dem Installationsverzeichnis (zB System32) auf Ihrem Computer ablegt.

3
GAThrawn

Ein großer Vorteil für Installateure gegenüber der Xcopy / Portable-Installation ist die Selbstreparatur.

In einer App, die das Windows Installer-System ordnungsgemäß verwendet, werden alle möglichen Informationen in der Windows Installer-Datenbank auf Ihrem Computer gespeichert. Außerdem werden häufig wichtige Teile der Setup-Dateien im Cache gespeichert.

Wenn die App aus irgendeinem Grund ausfällt (etwas löscht oder ersetzt eine Datei, wird die Registrierung beschädigt, Festplattenprobleme, der Benutzer löscht die Verknüpfung usw.). Wenn es sich um eine "angekündigte Verknüpfung" handelt, überprüft der Installer bei jedem Start die Schlüsseldateien und Schlüssel wird ersetzt, wenn sie nicht vorhanden sind, oder Sie können unter Hinzufügen / Entfernen von Programmen auf "Reparieren" klicken.

Warum kann ich beim Lesen des Adobe Reader-Desktopsymbols nur daran denken? Dieser ist so wahnsinnig selbstreparierend, dass er den Verstand überfordert Oskar Duveborn vor 13 Jahren 0
2
Ross

Ich denke, dass es zum Teil mit den großen Mengen an cruft Windows Apps zu tun hat. Zum Beispiel Registrierungsschlüssel, Benutzerdaten (/ Benutzer // AppData). Vielleicht geht OSX das einfach besser / anders.

Es ist auch nicht unmöglich, Apps zu erstellen, die Sie einfach aus einem Archiv extrahieren können - ich bin immer froh, wenn dies der Fall ist.

2
BinaryMisfit

Das .Net Framework ist die Plattform, um diese Art von Funktionalität zu ermöglichen. Meist werden Installationsprogramme nur deshalb verwendet, weil normale Benutzer dies gewohnt sind. Auf dieselbe Weise werden Mac-Benutzer zum Kopieren von Dateien in den Ordner "Programme" verwendet.

Die Mehrheit der Installer erweitert die Dateien einfach in den Ordner Programme und erstellt eine Verknüpfung. Es geht eher darum, was die Benutzer wissen, und oft ist es einfacher, den Prozess gleich zu halten, auch wenn die Anwendung portabel ist.

2
Brad Gilbert

Einige Programme erfordern, dass sich der Installationsort in der Registrierung befindet. Bei anderen Programmen können die Speicherorte des Programms fest in das Programm eingegeben werden (dies war bei perl.exe der Fall).

Grundsätzlich ist der Hauptgrund der Programmierer, der den einfachen Ausweg aus dem Programm genommen hat und etwas in die Programme eingearbeitet hat, entweder Registrierungsschlüssel oder tatsächliche, hart codierte Pfade.