Ich habe mich und andere oft gefragt und möchte einen Punkt ansprechen, den ich oft angesprochen habe, bevor ich erfahre, warum Linux weniger Installer sieht:
Linux-Distributionen bieten Paketmanager.
Ich würde jedoch nicht sagen, dass der Paketmanager einer Linux-Distribution ein Ersatz für ein Installationsprogramm ist, zum Teil aus den folgenden Gründen:
Diese Paketmanager sind im Betrieb nicht standardisiert
Ein Paketmanager ist ein bisschen so, als ob Sie Ihre Binärdatei bereitstellen und den Endbenutzer das Installationsprogramm auswählen lassen. Sie können das Terminal auswählen oder ein Tool mit einer fortgeschritteneren Benutzeroberfläche auswählen, aber es bietet Ihnen nicht die gleiche Ebenenkontrolle des Prozesses wie mit einem "herkömmlichen" Installationsassistenten.
Ein Beispiel für das, was ich unter Kontrolle verstehe, ist Dokumentation. Sie können Ihren Endbenutzern keine Anweisungen wie "Klicken Sie auf Weiter, und Sie sollten sehen" geben. Sie können Befehlszeilenanweisungen für ein bestimmtes Tool geben, aber dann verlassen Sie sich nicht nur auf die Tatsache, dass der Benutzer dieses Tool hat, sondern verlieren auch die meisten Vorteile eines Installationsassistenten (schließlich stellen die meisten Assistenten ein Frontend bereit -end für einfache Kommandozeilenanweisungen und Startskripte).
Dies hängt auch mit der Ästhetik zusammen. Jetzt sind Sie auf die Verteilung Ihrer Endbenutzer angewiesen, um eine intuitive / geeignete Oberfläche bereitzustellen. Obwohl Sie sich dieser Tatsache voll bewusst sind, ist es für einen gelegentlichen Benutzer nicht unangemessen, sich zu beschweren, wenn ein Doppelklick auf Ihre Datei (Installer in ihrer Ansicht) einen hässlichen Paketmanager öffnet, überhaupt nichts tut oder am schlimmsten ein Terminal öffnet Fenster. (Die Erfahrungen, die ich mit Benutzern gemacht habe, und ihre Abneigung gegen die "DOS-Eingabeaufforderung" / "Schwarz-Weiß-Box" / "Die Sache, die alle ihre Dateien löscht, wenn sie sie lustig ansehen", könnte wahrscheinlich ein Buch füllen.)
Paketformate sind nicht plattformübergreifend standardisiert.
Es gibt Tools, die zwischen Systemen wie rpm
und konvertiert werden können. deb
Es ist jedoch nicht sinnvoll, dass der Endbenutzer Ihre Pakete konvertiert, wenn Sie sie in einer Situation verwenden, in der ein Installationsassistent auf einer anderen Plattform bereitgestellt wird (z. B. durch Klicken und Fertigstellen) ). Das Bereitstellen aktueller Pakete für ein zusätzliches Paketformat kann recht einfach sein, wenn Sie über ein rudimentäres Build-System verfügen, aber immer noch eine neue Binärdatei hinzufügen, die unterstützt werden muss.
Das fügt auch eine neue Binärdatei hinzu, aus der die Benutzer je nach Plattform auswählen müssen (das klingt geringfügig, aber ich bin sicher, dass hier jemand bestätigen kann, dass sie x86 vs x64 erklären müssen, bevor [ja, es gibt Möglichkeiten, die richtige Plattform von der zu bestimmen Browser, aber dann werden Sie noch komplizierter und schwerer zu unterstützen, Verfahren])
Paketmanager sind "netter" gegenüber Open-Source-Software.
Dies bedeutet jedoch nicht, dass Sie Closed-Source-Software nicht mit einem Paketverwaltungssystem teilen können. Dies ist definitiv möglich. Wenn Sie jedoch versuchen, quellnahe Software auf Linux-Distributionen freizugeben, stoßen Sie auf eine Hürde, was Ihre Möglichkeiten betrifft, Ihre Software in gängige Repositorys zu verschieben. Dinge wie PPAs oder der openSUSE Build Service sind nicht verfügbar, und selbst die Canonical Partners-Repositorys sind standardmäßig nicht aktiviert.
Das bedeutet, dass Sie, sofern Sie kein eigenes Repository bereitstellen, nicht viele der Hauptfunktionen von Paketverwaltungssystemen, einschließlich automatischer Updates, nutzen können. Meiner Meinung nach ist dies der wichtigste Vorteil für die meisten Plattformen, die diese Systeme verwenden (z. B. iOS, Android und Windows Store).
Und selbst wenn Sie ein Repository bereitstellen (eine weitere Aufgabe mit variabler Trivialität), müssen Sie die Benutzer dazu bringen, es einzurichten (dies ist eine weitere Unterstützungsebene, eine weitere Reihe von nicht standardmäßigen Ansätzen und eine weitere Ablenkung vom ursprünglichen Standpunkt des Installateur)
Nach alledem habe ich das ursprüngliche Problem noch nicht gelöst, warum Installer unter Linux trotz dieser Faktoren (unter anderem) weniger verbreitet sind. In der ursprünglichen Frage wird gefragt, ob sie technisch ist oder auf Konventionen basiert und teilweise auf beiden.
Wenn Sie sich die oben genannten Faktoren ansehen, werden die Dinge für ein "Assistenten-ähnliches" Installationsprogramm auch komplexer. Würde Ihr Assistent beispielsweise mehrere zu installierende Paketformate enthalten? Wie gehen Sie mit dem Erscheinungsbild von Distributionen um? Die Liste geht weiter, und eine Sache , dass diese Pakete haben Sie es sich leisten ist , dass nichts davon Ihr Anliegen (wird für Gedeih und Verderb ) , so lange Sie die richtigen Pakete bieten. Abhängig von der Art Ihres Projekts können Sie diese "spezialisierten" Ressourcen nutzen, z. B. das Einreichen von Apps an das Ubuntu Software Center. Dies alles würde sich auf das Technische beziehen.
Aber der Aspekt, den ich persönlich als treibende Kraft sehe, ist Konvention. (Ich hoffe, ich habe das so tief vergraben, dass die Leute, die diese andere Antwort auf das Vergessen abgelehnt haben, aufgehört haben zu lesen.)
Ich bin der Meinung, dass das Plakat einen Punkt hatte, aber möglicherweise zu deutlich formuliert und keine objektiven Gründe für diesen Punkt geliefert hat. Wenn Sie die Unterschiede untersuchen, die ich für einen Paketmanager und einen Installer angegeben habe, wäre ich nicht überrascht, wenn Sie feststellen würden, dass die meisten davon nahezu unbedeutend sind (vielleicht sogar an Pedantik grenzen). Aber (entschuldigen Sie, was meiner Meinung nach als legitime Verwendung eines Ad-Hominem-Arguments angesehen wird), wir sind auch Benutzer vor Ort für Programmierer. Ich sehe Linux-Distributionen als hervorragende Windows-Alternative für Gelegenheitsbenutzer (unter anderem natürlich). Keine allgemein definiert Klicks-and-done Verfahren vorausgesetzt , dass alle diese Benutzer wirklich nicht ideal nutzen können imo .
Gleichzeitig finde ich, dass viele Dinge in Linux auch für diese Gruppe nicht besonders ideal sind . Sicher, einige Distributionen haben GUI-basierte Paketmanager, aber das bedeutet, dass diese Leute sich überlegen müssen, wie sie ein separates Tool verwenden können, das sich nicht ausschließlich auf die Installation Ihres Programms konzentriert (vergleichen Sie dies und das mit diesem ).
Natürlich können Sie die GUI verwenden, um einen Großteil der Aufgaben zu erledigen, die ein durchschnittlicher Gelegenheitsbenutzer ausführen muss, insbesondere bei bestimmten Distributionen (ironischerweise sind die Aktivitäten dieser Distributionen in der Open-Source-Community nicht immer willkommen [siehe Beschwerden über Ubuntu und es ist "ummauert" garden "]) Aber ich halte es nicht für leugnbar, dass Linux-Konventionen jemanden bevorzugen, der mit einer CLI vertraut ist, oder zumindest keine Todesangst hat, dass sein Erscheinungsbild bedeutet, dass er schreckliche Fehler begangen hat.
Ich sage nicht, dass das das ist, wonach sie streben, aber genau das sehe ich in diesen Konventionen. Und Paketverwaltungssysteme unter Linux scheinen dem zu folgen. Schließlich sind die meisten ihrer "Nachteile" so gut wie nicht vorhanden, wenn Ihr Endbenutzer mit den zugrunde liegenden Konzepten zufrieden ist.
Installer auf den meisten anderen Plattformen sind davon nicht wirklich betroffen und sollen einen Kommentar zur Frage "99,99% der Benutzer [können] blind auf" Weiter "klicken. Das Problem bei der Paketverwaltung ist, dass diese Benutzer dazu aufgefordert werden eine "Weiter" -Schaltfläche, mit der sie wissen, was diese "Weiter" -Schaltfläche ist (ich habe gesehen, dass Benutzer durch Tools, die die Eingabetaste mit anderem Text auslösen), und informiert werden, wenn sie diese "Küste beim Klicken" erreicht haben die "Weiter" Schaltfläche "Bühne.