Seite 1 von 1

Wozu Installationen?

Verfasst: 23.04.2021, 00:12
von starcow
Ich meine die Frage durchaus ernst, weil mir das bis heute nicht zu 100% klar ist.
Ich wollte versuchshalber Clang als Compiler nutzen, einfach um mal Erfahrungen Abseits von VS zu sammeln.
Meine Vorstellung war, dass ich dem Compiler - der ja auch nichts anderes ist als eine ausführbare Datei - meinen Quellcode als Textdatei übergebe und dieser mir schliesslich wiederum eine ausführbare Datei erstellt. Natürlich müsste der dann noch die entsprechenden Dateien im Gepäck haben, deren Headers ich eingebunden habe (also z. B für printf).
Irgendwie musste ich jetzt aber eine ganze "Umgebung" (?) installieren - also LLVM.

Bei Treiber oder Ähnlichen kann ich mir ja irgendwie noch erklären, dass man die nicht einfach auf die Festplatte kopieren kann, weil die möglicherweise noch in speziellen Dateien "registiert" werden müssen (so jedenfalls meine sicher falsche Vorstellung).
Aber Programme sind doch einfach ausführbare Dateien? Wieso kann ich die nicht einfach auf die Festplatte kopieren? Hin und wieder treffe ich ja auf solche Programme - die sich einfach entpacken und starten lassen, was ich sehr schätze.

Wieso wird das nicht durchgängig so gemacht? Gibts da einen konkreten Grund?

Gruss starcow

Re: Wozu Installationen?

Verfasst: 23.04.2021, 11:15
von Jonathan
Hm, hier mal ein paar Dinge die ein Installer tun kann:

- Dafür sorgen, dass Konfigurationdateien in einem anderen Verzeichnis sind, als der Code (exe). Erhöht die Sicherheit, weil weil nur Code aus dem Programmverzeichnis ausgeführt werden darf, das aber für normale Nutzer schreibgeschützt ist. Außerdem braucht man das für Systeme mit mehreren Nutzern. Außerdem kann man seine Nutzerdaten sichern, ohne das ganze Programm kopieren zu müssen
- Erlaub Dateiverknüpfungen zu erstellen, damit sich Dateien mit deinem Programm öffnen
- Autostartfunktion, z.B. für Auto-Updates oder andere Hintergrunddienste
- Setzen von Pfaden. Speziell LLVM besteht ja glaube ich aus dutzenden Programmen die zusammenarbeiten, da muss man wissen, wo man sie findet
- Überprüfen ob Abhängigkeiten vorhanden sind und diese ggf. auch installieren.
- Das alles wieder Rückgängig machen, indem man einen Uninstaller anbietet.

Re: Wozu Installationen?

Verfasst: 23.04.2021, 11:16
von Tiles
Eintrag ins Startmenü und Desktop Icon nicht zu vergessen ...

Re: Wozu Installationen?

Verfasst: 23.04.2021, 11:46
von mrz
Schlussendlich kommt es auf die Software selber an, und dessen Anwender-Zielgruppe, was sinnvoll ist.

Wichtige Dinge wurde ja bereits genannt (Anwendungsdaten ausserhalb vom Installationsverzeichnis handeln,
Pre-Requirements prüfen, Anlegen von Verknüpfungen).

Ein Punkt ist vorallem was man macht wenn eine Software mehr als nur genau einer Executable besteht.
Viele normale Benutzer werden mit einem Archiv wie ZIP überfordert sein.
Der Installer ist ja quasi Archiv und Entpacker in einer einzelnen Executable.

Re: Wozu Installationen?

Verfasst: 23.04.2021, 21:47
von NytroX
Ich würde sagen "Treiber und ähnliches" ist der Hauptgrund.

(1)
Dazu kommt noch, dass besonders Shareware und ClosedSource Hersteller gerne Dinge an Orten auf deiner Festplatte hinterlassen, die nie ein Mensch zuvor gesehen hat.
Meistens sind das entweder Kernel-Treiber oder Services die installiert werden, d.h. die "müssen" auch automatisch starten.
Und das passiert öfter, als man denkt, Beispiele für solche Malware sind:
- "AntiCheat" Programme
- "CrashReporter"
- andere Telemetrie-Reporting Programme wie beispielsweise Steam

Die meisten User drücken einfach ok, wenn ein Installer nach Admin-Rechten fragt. Bei normalen Programmen ist die Hemmschwelle höher.

(2)
Das andere extrem zu Installern hast du ja genannt, einfach entpacken und los.
Aber wie die anderen schon erwähnt haben sind dann Verknüpfungen, Kontext-Menü Einträge (bei rechtsklick) und Dependencies etwas umständlicher einzurichten.

(3)
Es gibt aber noch eine weitere Möglichkeit, nämlich dass der Installer ein Teil des Betriebssystems ist.
Dann muss die Software genau beschreiben, welche Dependencies und Services sie benötigt, und der Installer kann dann auch die Kontext-Menü-Enträge und Desktop-Verknüpfungen einrichten. Und man muss dann nur dem Installer Admin-Rechte anvertrauen.
Das wären dann z.B. die Package-Manager unter Linux.
Windows hat natürlich keinen, aus den in Abschnitt (1) genannten Gründen.

Re: Wozu Installationen?

Verfasst: 23.04.2021, 22:15
von Krishty
NytroX hat geschrieben: 23.04.2021, 21:47Es gibt aber noch eine weitere Möglichkeit, nämlich dass der Installer ein Teil des Betriebssystems ist.
Dann muss die Software genau beschreiben, welche Dependencies und Services sie benötigt, und der Installer kann dann auch die Kontext-Menü-Enträge und Desktop-Verknüpfungen einrichten. Und man muss dann nur dem Installer Admin-Rechte anvertrauen.
Das wären dann z.B. die Package-Manager unter Linux.
Windows hat natürlich keinen, aus den in Abschnitt (1) genannten Gründen.
Ganz exakt das ist und tut der Windows Installer seit 1999. Oder der Microsoft Store seit 2012.

Re: Wozu Installationen?

Verfasst: 26.04.2021, 10:44
von starcow
Ok, ich sehe, eine Installation macht unter bestimmten Umständen wirklich Sinn.
Etwas lästig finde ich halt, dass man so, in vielen Fällen nicht wirklich sieht, was denn tatsächlich alles verändert und kopiert wurde - und das bei anschliessendem Uninstall an verschiedenen Stellen "Leichen" und Einträge zurückbleiben.

Re: Wozu Installationen?

Verfasst: 26.04.2021, 13:02
von Jonathan
Guck sich sowas jemand von euch eigentlich näher an? Ich habe schon von Tools gehört, die Überwachen, welche Änderungen ein Programm am System vornimmt, auf welche Dateien in welchen Ordnern zugegriffen wird, und so weiter. Oder auch, auf welche Server zugegriffen wird. Ich hab das noch nie gemacht, aber bei manchen Programmen wäre das sicherlich mal ganz interessant...

Re: Wozu Installationen?

Verfasst: 26.04.2021, 22:32
von NytroX
Ja, ich hatte mal ein Programm was die Registry überwacht.
Das macht man dann einmal vor der Installation und einmal nachher. Dann kann man alles sauber entfernen.
Jedenfalls in der Theorie.
Das Problem war, das Windows so viel in der REG ändert, dass man keine Ahnung hat, ob die Änderung was mit der Installation zu tun hatte.
Und beim Uninstallen geht dann plötzlich Windows nicht mehr...

Was halt fehlt ist eine gescheite Prozess-Virtualisierung, die dem Programm einfach was vorgaukelt und die Umgebung simuliert.

Re: Wozu Installationen?

Verfasst: 26.04.2021, 22:59
von mrz
Ja klar das ist trivial und nennt sich unter Windows Procmon. Gehört quasi zum Standardtool für diejenigen welche regelmässig irgendwelche skurrilen (Performance)Probleme analysieren müssen:
https://docs.microsoft.com/en-us/sysint ... ds/procmon

Da fehlt gar nix. Das was ihr sucht gibt es alles schon und nennt sich Virtual Machine. Mit VMware (bzw iESX) lässt sich der ganze State von einer VM aufzeichnen und abspielen. Ein Installer überwachen macht nur bedingt Sinn. Ein Programm kann genau sogut beim 1. Start irgendwelche Registryeinträge anlegen, löschen, oder sonst was auf dem FS rumwürgen.
Beim Deinstallieren einer Software Windows zerschossen? Keine Ahnung mit was für Software ihr arbeitet aber mir ist das noch nie passiert.
Unbekannte Software installiere ich immer zuerst in einer VM und wenn sie dann für mich brauchbar ist dann auf dem produktiven System.
Aber nicht weil ich Angst habe dass mein Windows danach nicht mehr tut... sondern einfach weil ich in 99% der Fälle die Software nur für einen bestimmten Fall oder kurze Zeit brauche, oder sich herausstellt dass die Software unbrauchbar ist.
TestVMs gibts schon seit Jahren von MS und habs hier auch schon erwähnt:
https://developer.microsoft.com/de-de/w ... -machines/

Re: Wozu Installationen?

Verfasst: 27.04.2021, 08:40
von Krishty
NytroX hat geschrieben: 26.04.2021, 22:32Was halt fehlt ist eine gescheite Prozess-Virtualisierung, die dem Programm einfach was vorgaukelt und die Umgebung simuliert.
Ganz genau das sind & tun Windows Store Apps seit 2012. Die laufen in eigener Sandbox mit eigener Registry, mit eigenem Dateisystem (User-Dateien werden nur in ihren View gemerged, falls sie das Recht dazu haben), eigener Registry (User-Registry wird nur in ihren View gemerged, falls sie das Recht dazu haben), usw usf.

Dann muss man sich aber eben auf UWP einlassen und wissen, wie man Sideloading nutzt (Apps installieren ohne Store-Anbindung).

Re: Wozu Installationen?

Verfasst: 27.04.2021, 09:51
von Schrompf
Mich nervt an MS, dass sie gute Sachen (wie diese Install-Virtualisierung) völlig ohne Not mit bestenfalls zwielichtigen Sachen (wie diese Panel-Apps) verbundeln. Korrigiert mich, aber nach meinem Wissen finden UWP-Apps quasi nicht statt. Ich kenne niemanden, der auch nur eine hat.

Re: Wozu Installationen?

Verfasst: 27.04.2021, 16:31
von nullptr
Da muss ich zustimmen. Ein Thema das mir sehr am Herzen liegt.
Auch das App-Berechtigungssystem das mitgeliefert wird finde ich ganz fein. Als Benutzer als auch als Entwickler...wenn es bloß nicht so halbgar wäre. Keine gute Übersicht und Networking Permissions hab ich auch noch nirgends gefunden. Dafür muss man dann wieder in die Firewall Einstellungen die seit 2007 kein Lifting mehr bekommen haben. Aber ich schweife ab ;)

Re: Wozu Installationen?

Verfasst: 29.04.2021, 16:47
von NytroX
Krishty hat vollkommen recht. Und ihr anderen auch. Es ist ja nicht so, dass wir von etwas total Abwegigem reden, die Ideen und Technologien sind ja alle da.
Aber aktuell entscheidet halt effektiv der Entwickler der Fremdsoftware, was sie auf meinem System sehen und machen darf. Ob er eine UWP App draus macht, oder sie in einem flatpak bündelt bzw als Portable-Version bereitstellt. Und halt nicht der Konsument.

Aber nur andersrum wird ein Schuh draus: der Nutzer muss bestimmen können, was von seinem System er Preis geben will und was nicht.
Das Prinzip der Datensparsamkeit und Risikominimierung ist ja generell anzuwendenden, steht sogar auch so im Gesetz.
Und aktuell habe ich nur die Alternative, die Software dann halt gar nicht zu nutzen; d.h. 99% aller Software nicht zu nutzen.

Vielleicht ist nicht alles so krass, wie ich es beschrieben habe, aber da läuft auf jeden Fall was irgendwas schief.

Re: Wozu Installationen?

Verfasst: 29.04.2021, 18:04
von Tiles
Naja, aber der User kann sich halt keinen Installer basteln, das macht der Software Hersteller. Das sind im Zweifelsfall wir. Ich habe meine Games nur mit Installer verbreitet. Da gabs kein Zip. Der einzige Einfluss den der User hat ist mit den Füssen abzustimmen, und im Zweifelsfall eben nicht zu installieren.