Wieso ist eine Installation noetig?



  • Hallo
    mir ist grade eine Frage in den Sinn gekommen, deren Antwort ich nicht weis. Die Frage ist einfach: Wieso ist eine Installation noetig?

    Der normale Weg wenn man ein Programm braucht ist jetzt sich eine entsprechende setup.exe runter zu laden. Die startet man dann um das Programm ins System zu installieren. Was macht die setup.exe?
    - dekompremieren der Programmdateien (die exe und paar Dlls)
    - kopieren Programmdateien in ein dafuer vorgesehenes Verzeichnis
    - erstellen der default Konfiguration
    - Eintragen des Programms in Listen (Startmenu, Desktoplink, usw)

    Wieso wird das gemacht? Weil der Benutzer es so von dem System gewohnt ist. Er ist gewohnt auf ein Link zu klicken um das Programm zu starten.

    Frueher ging doch alles ohne Installation. Man hatte eine Diskette, auf der Diskette lagen alle noetigen Dateien und man konnte das Programm von der Diskette starten.

    Wieso braucht ein Programm nun umbedingt root-Rechte, damit man es benutzen kann (fuer die Installation braucht man root-Rechte, erst nach dem Installieren kann man das Programm benutzen)?

    Wieso kann man ein Programm nicht einfach von irgendwo starten, das Programm fragt nach a) wo man die Libraries finden kann, b) wo es seine Konfiguration abspeichern kann. Dann gibt es Standardverzeichnisse, fuer die Libraries und die Konfigurationsdateien. Z.b. unter Linux sind die Libraries in /usr/lib und die Konfiguration kann man in /etc (fuer alle Benutzer) oder in /home (fuer einzelne User) abspeichern. Temporaeres Verzeichniss gibt es in /tmp.
    Dann koennte optional eine setup.exe mit dabei liegen, die das Programm fest ins System installiert.

    Das waere doch viel cooler. Man koennte ein Programm wie frueher auf einer Diskette haben (bzw. USB-Stick), man koennte das Programm von jedem PC benutzen und man muss es nicht erst fest ins System installieren um es mal kurz zu testen.

    Mehr noch: Nie wieder Virenbefall. Das System ist einfach global Schreibgeschuetzt fuer die Dauer der Zeit in der du das Programm testest.



  • Der normale Weg wenn man ein Programm braucht ist jetzt sich eine entsprechende setup.exe runter zu laden. Die startet man dann um das Programm ins System zu installieren. Was macht die setup.exe?
    - dekompremieren der Programmdateien (die exe und paar Dlls)
    - kopieren Programmdateien in ein dafuer vorgesehenes Verzeichnis
    - erstellen der default Konfiguration
    - Eintragen des Programms in Listen (Startmenu, Desktoplink, usw)

    naja... vll. will man versuchen die daten in einer geordnetne struktur im system zu platzieren... redunanz umgehen



  • die antwort ist eigentlich ganz simple: komfort. es ist für den anwender wesentlich simpler, eine einzelne datei zu starten, kurz zu warten und dann findet er entsprechende icons zum starten an der gewohnten stelle.

    wenn ein programm sich immer selbstständig "installieren" müsste, sobald es gestartet wird, versteckst du die installationsroutinen einfach in deinem code. auch kein großer unterschied.

    moderne programme verwenden shared libraries und so gerümpel, die je nach system in gewisse zentrale stellen gehören. lib hier, conf datei da. sowas nimmt ein installationsprogramm dem anwender ab und schützt vor fehlbedienung.
    guck dir viele linux programme an. die haben schlicht ne readme dabei, die einem sagt, wohin man diverse dateien kopieren muss und wie man die konfiguration manuell anpassen muss. entsprechend voll sind support foren mit anfragen hilfloser anwender 😉



  • hallo

    DEvent schrieb:

    Wieso kann man ein Programm nicht einfach von irgendwo starten, das Programm fragt nach a) wo man die Libraries

    die Idee ist gut.

    Da Plattenplatz keine Rolle spielt (was sind heute ein paar GB mehr oder weniger),
    koennte man gleich alle Anwenderprogramme self-contained in die home-Dirs der
    User stellen mitsamt Libraries usw.

    Shared Libraries braeuchte man dann nicht mehr.

    Es gibt einen Trend in aehnliche Richtung, und zwar, Programme so zu
    konfigurieren, dass sie ohne Installation vom USB Stick laufen.



  • thordk schrieb:

    guck dir viele linux programme an. die haben schlicht ne readme dabei, die einem sagt, wohin man diverse dateien kopieren muss und wie man die konfiguration manuell anpassen muss. entsprechend voll sind support foren mit anfragen hilfloser anwender 😉

    Und ich dachte unter Linux wären Pakete und Paketverwaltungssysteme weit verbreitet 😉

    Gibt es keine ordentliche Paketverwaltung, ist es schon ein großer Vorteil von Installationsroutinen, dass sie üblicherweise auch Deinstallationsroutinen mitbringen. Das merkt man bei Mac OS X zum Beispiel. Denn dort ist es in der Tat auch üblich, Programme ohne Installation auszuliefern obwohl Mac OS X keine Paketverwaltung kennt. Bei Mac OS X sieht eine dauerhafte Installation dann oft so aus, dass man ein Programm herunterlädt, entpackt und das Verzeichnis einfach in den Ordner "Programme" schiebt. Da ein Programmordner automatisch auch das Startsymbol für das Programm in dem Ordner ist, hat man es damit dann schon installiert. Sprich Programm auf die Festplatte kopiert und Startsymbol angelegt. Das ist eigentlich ein ziemlich elegantes System. Einen Nachteil sieht man aber gleich bei der Deinstallation: man löscht einfach den Programmordner und weg sind Programm und Startsymbol. Um die Konfigurationsdateien des Programms, welches es u.U. angelegt hat, kümmert sich jedoch keiner ...



  • DEvent schrieb:

    Hallo
    mir ist grade eine Frage in den Sinn gekommen, deren Antwort ich nicht weis. Die Frage ist einfach: Wieso ist eine Installation noetig?

    Der normale Weg wenn man ein Programm braucht ist jetzt sich eine entsprechende setup.exe runter zu laden. Die startet man dann um das Programm ins System zu installieren. Was macht die setup.exe?
    - dekompremieren der Programmdateien (die exe und paar Dlls)
    - kopieren Programmdateien in ein dafuer vorgesehenes Verzeichnis
    - erstellen der default Konfiguration
    - Eintragen des Programms in Listen (Startmenu, Desktoplink, usw)

    Wieso wird das gemacht? Weil der Benutzer es so von dem System gewohnt ist. Er ist gewohnt auf ein Link zu klicken um das Programm zu starten.

    Frueher ging doch alles ohne Installation. Man hatte eine Diskette, auf der Diskette lagen alle noetigen Dateien und man konnte das Programm von der Diskette starten.

    Wieso braucht ein Programm nun umbedingt root-Rechte, damit man es benutzen kann (fuer die Installation braucht man root-Rechte, erst nach dem Installieren kann man das Programm benutzen)?

    Wieso kann man ein Programm nicht einfach von irgendwo starten, das Programm fragt nach a) wo man die Libraries finden kann, b) wo es seine Konfiguration abspeichern kann. Dann gibt es Standardverzeichnisse, fuer die Libraries und die Konfigurationsdateien. Z.b. unter Linux sind die Libraries in /usr/lib und die Konfiguration kann man in /etc (fuer alle Benutzer) oder in /home (fuer einzelne User) abspeichern. Temporaeres Verzeichniss gibt es in /tmp.
    Dann koennte optional eine setup.exe mit dabei liegen, die das Programm fest ins System installiert.

    Das waere doch viel cooler. Man koennte ein Programm wie frueher auf einer Diskette haben (bzw. USB-Stick), man koennte das Programm von jedem PC benutzen und man muss es nicht erst fest ins System installieren um es mal kurz zu testen.

    Mehr noch: Nie wieder Virenbefall. Das System ist einfach global Schreibgeschuetzt fuer die Dauer der Zeit in der du das Programm testest.

    noob



  • Hi,

    ich finde diese ganze Installiererei auch absolut schwachsinnig. Heutezutage wird ja vielfach schon ein Hello-World-Programm mit Instalationsroutine geliefert. Wenn wengistens alles bei der Deinstallation wieder runterginge wäre es ja noch OK, aber wenn man genügend oft was draufgezogen und wieder runtergeschmissen hat ist meist das System so zugemüllt, das es eigentlich nur noch eine saubere Alternative gibt: Neuinstallieren.

    In der Beziehung versthe ich KleinWeich nicht. Die hatten mit Win 95 die Möglichkeit es besser zu machen und habens noch schlechter gemacht. Wieso müssen Programme in die Registry und in die Systemverzeichnisse schreiben? Aus meiner Sicht gehört da nur ein Verweis auf das entsprechende Programm rein, und bei dem konkreten Programm hat dann eine eigene Registry und ein eigenes Systemverzeichnis zu liegen. Nach jedem Ändern an einer von den vielen Registrydateien kann ja dann irgend ein Linker aus der Systemregistry und den einzelnen Programmregistrys eine Arbeitsregistry zusammenlinken, genau wie entsprechende Pfade für die jeweils aktuellste DLL-Version setzen. Aber damit hätte man ein praktisch wartungsfreies System. Man packt ein Programm irgendwohin und teilt dem Systemmit wo es ist. Wenn man es nicht mehr braucht löscht man einfach das gesamte Verzeichnis und das System merkt beim nächsten Start das eine Programmregistry nicht da ist und linkt sich schnell mal eine neue Arbeitsregistry zusammen. EDV könnte so schön sein.

    Ich versuche bei meinen Programmen so weit wie möglich ohne Installation auszukommen. Auchh wenn das ggf. Mehrarbeit ist, weil ich bestimmte Sachen die sonst fertig vorhanden sind selber von Hand erledigen muß. Aber spätestens wenn man neben der Programmentwicklung noch was anderes zu erledigen hat und dann noch die ganzen Nutzer betreuen muß bei denen es irgendwelche Installationsprobleme gibt, lernt man Programme die ohne Installation laufe schätzen.

    Gruß Mümmel



  • thordk schrieb:

    die antwort ist eigentlich ganz simple: komfort. es ist für den anwender wesentlich simpler, eine einzelne datei zu starten, kurz zu warten und dann findet er entsprechende icons zum starten an der gewohnten stelle.

    wenn ein programm sich immer selbstständig "installieren" müsste, sobald es gestartet wird, versteckst du die installationsroutinen einfach in deinem code. auch kein großer unterschied.

    moderne programme verwenden shared libraries und so gerümpel, die je nach system in gewisse zentrale stellen gehören. lib hier, conf datei da. sowas nimmt ein installationsprogramm dem anwender ab und schützt vor fehlbedienung.
    guck dir viele linux programme an. die haben schlicht ne readme dabei, die einem sagt, wohin man diverse dateien kopieren muss und wie man die konfiguration manuell anpassen muss. entsprechend voll sind support foren mit anfragen hilfloser anwender 😉

    Nein das Programm hat keine Installationsroutine. Nur eine optionale Abfrage (also wenn das System vollkommen komisch oder, oder wenn Shard Libs nicht gefunden werden), wo eben die Shared Libs liegen.

    Ausserdem schau dir doch mal eine Setup.exe an: Da wird zu 99% alle DLLs mitgeliefert die benoetigt werden. Unter Linux ist das die Ausnahme, aber unter Windows doch der Standard.

    Wenn Linux Programme nur einen Quellcode haben, dann wird der Code mit ./configure && make kompeliert. Das Programm kannst du dann im Verzeichnis starten ohne etwas zu installieren. Im Idealfall sieht eine README so aus:

    Noetig sind Foo Lib, Bar Lib, Installation:
    ./configure
    make
    make install
    

    Wobei der dritte Schritt eigentlich optional ist, da man nach dem ersten make das Programm starten kann.

    muemmel schrieb:

    Ich versuche bei meinen Programmen so weit wie möglich ohne Installation auszukommen. Auchh wenn das ggf. Mehrarbeit ist, weil ich bestimmte Sachen die sonst fertig vorhanden sind selber von Hand erledigen muß. Aber spätestens wenn man neben der Programmentwicklung noch was anderes zu erledigen hat und dann noch die ganzen Nutzer betreuen muß bei denen es irgendwelche Installationsprobleme gibt, lernt man Programme die ohne Installation laufe schätzen.

    Ich frag mich inzwischen sowieso was das ganze soll. Zum Beipsiel so ein simples Programm wie der Icq-Client. Kann man einfach eine zip Datei runterladen die das ganze Programm in ein Verzeichniss entpackt und man es danach einfach von ueberall starten kann? Nein es werden root-Rechte benoetigt.



  • ist doch gut, dass die programme die dlls mitliefern. wo sollen sonst funktionen hin, die das programm benötigt? allgemeine funktionen werden aus der winapi, .net-framework oder java-framework geholt.
    das hat alles seine richtigkeit.

    die setups automatisieren das kopieren in die richtigen verzeichnisse. oder willst du eine zip-datei herunterladen, die 20 dlls enthält und alles per hand nach c:/programme/bla kopieren?

    und vergleich doch bitte nicht ein setup mit dem kompilieren von quellcode unter linux. das ist ein unterschied wie tag und nacht. du kannst von keinem 0815-anwender erwarten, dass er sich erst den quellcode besorgt und ne runde durchkompiliert 🙄

    ich muss dir aber rechtgeben, dass es absolut nervig ist, wenn uninstaller reste hinterlassen. das ist aber faulheit und unachtsamkeit der leute, die das setup erstellt haben. du kannst fast jedes setup so skripten, dass es auch nachträglich erzeugte dateien (a la settings.ini) löscht, wenn der benutzer das will.
    ich hyperventiliere schon, wenn der uninstaller noch den programmordner unter c:/programme nicht löscht. das ist ätzend 😡



  • -wiczer- schrieb:

    ist doch gut, dass die programme die dlls mitliefern. wo sollen sonst funktionen hin, die das programm benötigt? allgemeine funktionen werden aus der winapi, .net-framework oder java-framework geholt.
    das hat alles seine richtigkeit.

    die setups automatisieren das kopieren in die richtigen verzeichnisse. oder willst du eine zip-datei herunterladen, die 20 dlls enthält und alles per hand nach c:/programme/bla kopieren?

    Nein nix kopieren. In ein Verzeichnis auspacken und die .exe starten. Mehr nicht.

    In der Java-Welt funktioniert das ja. Einfach ein .jar runterladen, und irgendwo starten. Simpler gehts doch kaum.

    Das Problem der Shared Libs wurde in Linux schon Jahrzente geloest, da brauchst du kein Java/.NET Framework. Alle Libs sind auf jeder Linux-Distribution in /usr/lib. Sie werden auch automatisch aktuell gehalten durch ein simples apt-get upgrade.



  • wie stellst du dir das denn bei großen programmen vor, die eigene Dlls haben?

    willst du etwa die dll-technik abschaffen und immer alles in eine exe-datei stecken? dann viel spaß beim updaten von großen programmen. anstatt einzelne dlls auszutauschen, musst du die ganze exe austauschen.

    außerdem kannst du nicht davon ausgehen, dass du immer den quellcode eines programms hast und es dann kompilieren kannst. es gibt sowas wie geistiges eigentum.

    die dlls in system32 werden auch aktuell gehalten. das ganze nennt sich windows-update.



  • -wiczer- schrieb:

    außerdem kannst du nicht davon ausgehen, dass du immer den quellcode eines programms hast und es dann kompilieren kannst. es gibt sowas wie geistiges eigentum.

    was hat das eine mit dem anderen zu tun? wenn ich quellcode öffentlich zugänglich mache bleibt es nach wie vor mein geistiges eigentum. die verteilung von proprietärer software bedeutet allerhöchstens den versuch dieses zu schützen. inwiefern dies sinnvoll und wirksam ist steht auf einem anderem blatt und soll hier nicht gegenstand der diskussion werden 🙂



  • -wiczer- schrieb:

    die setups automatisieren das kopieren in die richtigen verzeichnisse. oder willst du eine zip-datei herunterladen, die 20 dlls enthält und alles per hand nach c:/programme/bla kopieren?

    was? warum das denn? man entpackt z.b. alles (exe, dlls, ini-files, usw) in ein beliebiges verzeichnis und hat alles an einem platz. das verzeichnis könnte man auf seinen usb-stick kopieren und hätte mit 3 mausklicks sein software samt aller einstellungen mobil gemacht. kopiert man die software auf ein netzlaufwerk, kann jeder am netz angeschlossene user damit arbeiten. alles unglaublich praktisch. warum sollte man alle komponenten quer übers ganze system verstreuen (so wie ein installer es macht)? und am schlimmsten *registry einträge machen* (<--übelster_bullshit_dens_gibt!!) es gibt aus technischer sicht keinen vernünftigen grund für installer (festplattenplatz sparen durch verhindern von mehrfachen kopien einer dll ist in der heutigen zeit, in der es 8GB SD-karten gibt und die leute mehrere 500MB fette videofilme auf der platte horten, kein argument mehr). im gegenteil, es gibt probleme mit verschiedenen dll-versionen und restlos beseitigen können installer oft auch nicht alle. die einzige daseinsberechtigung von installern ist die tatsache, dass auch 08/15-dumm-user (die noch nicht mal winrar bedienen können) sich neue programme aufspielen und benutzen können.
    🙂



  • installationshasser-freak schrieb:

    -wiczer- schrieb:

    die setups automatisieren das kopieren in die richtigen verzeichnisse. oder willst du eine zip-datei herunterladen, die 20 dlls enthält und alles per hand nach c:/programme/bla kopieren?

    was? warum das denn? man entpackt z.b. alles (exe, dlls, ini-files, usw) in ein beliebiges verzeichnis und hat alles an einem platz. das verzeichnis könnte man auf seinen usb-stick kopieren und hätte mit 3 mausklicks sein software samt aller einstellungen mobil gemacht. kopiert man die software auf ein netzlaufwerk, kann jeder am netz angeschlossene user damit arbeiten. alles unglaublich praktisch. warum sollte man alle komponenten quer übers ganze system verstreuen (so wie ein installer es macht)? und am schlimmsten *registry einträge machen* (<--übelster_bullshit_dens_gibt!!) es gibt aus technischer sicht keinen vernünftigen grund für installer (festplattenplatz sparen durch verhindern von mehrfachen kopien einer dll ist in der heutigen zeit, in der es 8GB SD-karten gibt und die leute mehrere 500MB fette videofilme auf der platte horten, kein argument mehr). im gegenteil, es gibt probleme mit verschiedenen dll-versionen und restlos beseitigen können installer oft auch nicht alle. die einzige daseinsberechtigung von installern ist die tatsache, dass auch 08/15-dumm-user (die noch nicht mal winrar bedienen können) sich neue programme aufspielen und benutzen können.
    🙂

    ich denke es kommt immer auf den umfang der software an. ein kleiner media player z.B. sollte meiner meinung nach in form von archiven vertrieben werden. aber bei software wie visual studio und office bin ich schon froh nicht alle abhängigkeiten von hand auflösen zu müssen 🙂

    eins muss ich noch sagen:

    ZOMG dieses wort!11!!!11!!!fünfzehn!!!11!!! 😮

    installationshasser-freak schrieb:

    [...]programme aufspielen[...]

    😮



  • sothis_ schrieb:

    ich denke es kommt immer auf den umfang der software an. ein kleiner media player z.B. sollte meiner meinung nach in form von archiven vertrieben werden. aber bei software wie visual studio und office bin ich schon froh nicht alle abhängigkeiten von hand auflösen zu müssen

    vs2005 ist wohl 'by design' so konzipiert und soll sich tief ins system eingraben. aber ich glaube dass es auch anders geht. noch vs-6 liess sich bequem auf 'nen usb memory-stick kopieren und überall benutzen. es gab dann zwar beim start eine hässliche meldung 'unregistrierte version', aber wen juckt das? ich hab' mal ein kleines java-programm als zip-file weitergegeben, in dem auch die JRE enthalten war (ich glaub das waren an die 70MB nur für die JRE), damit auch leute das programm benutzen können, die kein JRE installiert haben. hat nie jemanden gestört. die meisten haben es von CD gestartet und waren hocherfreut, dass man nichts installieren braucht
    🙂



  • sothis_ schrieb:

    ich denke es kommt immer auf den umfang der software an. ein kleiner media player z.B. sollte meiner meinung nach in form von archiven vertrieben werden. aber bei software wie visual studio und office bin ich schon froh nicht alle abhängigkeiten von hand auflösen zu müssen 🙂

    Unter Mac OS kopiert man das Office Application Bundle (sieht wie nur eine einzelne Datei aus) in den Programme Ordner (oder sonstwo hin) und ist fertig mit der Installation. Den Rest macht sich Office selbst.

    Moeglich ist es allemal und in 99% der Faelle hat eine Anwendung auch nicht irgendwohin etwas zu schreiben.


Anmelden zum Antworten