Ich bin mir sicher, dass es nicht um Faulheit oder ähnliches geht, aber ich verstehe nicht, warum Entwickler selbst von hauptsächlich Consumer-konformen Apps keine Art von Installationsassistenten erstellen, mit denen Sie als Nächstes fertig werden. Dieselben Apps haben normalerweise Installationsprogramme für Windows und Mac OS. Warum also nicht Linux?
Gibt es einen technischen Grund für diesen Trend oder handelt es sich nur um eine Konvention?
BEARBEITEN (23-09-2014): Diese Frage wurde nicht gestellt, um einen Windows-gegen-Linux-Flammenkrieg zu starten. Ich habe alle 3 Hauptbetriebssysteme benutzt und abgesehen von Linux haben die beiden anderen (Windows und Mac OS) Installer. Ich habe Oracle noch nicht installiert, aber was auch immer ich für die Installation benötigt habe, ich habe noch nie einen GUI-Installer für Linux gesehen.
Ja, ich weiß, dass Linux Paketmanager hat, so dass die Entwickler die Installer nicht "brauchen". Es gibt jedoch immer noch eine große Menge an Software, die entweder in den Standardpaket-Managern veraltet oder einfach nicht verfügbar ist. Da Linux für Gelegenheitsbenutzer eine Alternative zu Windows ist (Ubuntu ist in dieser Domäne sehr bemüht), ist es viel sinnvoller, den Benutzern nur das zu geben, was sie kennen.
Nehmen Sie zum Beispiel das Einrichten eines LAMP-Stacks. Dies sind alles Open-Source-Programme in den Standard-Repositorys. Können Sie jedoch alles auf einmal ohne Skript einrichten? Schauen Sie sich jetzt den WAMP-Server in Windows an. Sie müssen nur ein Installationsprogramm ausführen und es installiert mehrere Softwareprogramme so, dass sie gut miteinander funktionieren. Dann werden gute Standardeinstellungen und ähnliches erstellt. Installer können das, Paketmanager nicht. Ja, Sie können ein Skript dafür online finden, aber wo? Und welches?
Installateure sind keine veralteten Technologien aus der Vergangenheit. Sie sind immer noch nützlich und 95% der Benutzer sind bereits mit ihnen vertraut.
Antworten:
Entwickler müssen lediglich ein Paket für eine Distribution bereitstellen. Jede Distribution hat dann eine Möglichkeit, dieses Paket zu installieren. Dies kann in einem Terminal (
apt-get
) oder über eine grafische Oberfläche erfolgen, z. B. Ubuntu Software Center.Das Schöne ist, dass sich Entwickler nur darum kümmern müssen, ein richtiges Paket zu erstellen. Die Distributionshersteller kümmern sich um den Rest und jede Paketinstallation hat den gleichen Prozess.
quelle
Weil sie es nicht brauchen. Linux-Distributionen verfügen im Gegensatz zu Windows normalerweise über funktionierende Paketverwaltungssysteme, bei denen jede einzelne Anwendung die Installation und Aktualisierung immer und immer wieder neu implementieren muss.
quelle
Die meisten Closed-Source, nicht frei-as-in-Bier - Software für Linux ist mit Installationsassistenten kommen. Einige Closed-Source-Software, die als Bier kostenlos erhältlich ist, zumindest solange, bis die meisten großen Distributionen sie in den Griff bekommen. Für Open-Source-Software sind Paketmanager eine klar überlegene Lösung.
Was ist also mit den frühen Phasen, bevor Open Source-Software von den großen Distributionen aufgegriffen wird? Warum erstellen Entwickler in dieser Phase keine Installationsassistenten?
Zunächst einmal interessieren sich viele Open-Source-Entwickler nicht für die Distribution. Sie schreiben Software für sich selbst und geben sie dort ab, falls sie für andere nützlich ist, aber sie sehen die Verpackung für die Verteilung als das Problem eines anderen. Wenn es genug gefällt, übernimmt jemand die Aufgabe, es in seine Lieblingsdistribution zu bringen.
Die Open-Source-Entwickler, die sich für die Distribution interessieren, arbeiten immer noch besser im Package Manager-System, da sich dort ihre Kunden befinden. Linux-Benutzer durchsuchen das Web normalerweise nicht nach Software. Sie suchen zuerst ihren Paketmanager. Gelingt dies nicht, durchsuchen sie die von der Community verwalteten Repositorys wie Ubuntus PPAs oder Archs AUR. Wenn Sie nicht an diesen Orten sind, wird Ihre Software höchstwahrscheinlich nicht bemerkt, und wenn sie bemerkt wird, wird sie mit geringerer Wahrscheinlichkeit als vertrauenswürdig eingestuft.
Wenn Sie auf diese vorhandenen Vertriebskanäle verzichten, ist das so, als wären Superbowl-Anzeigen zu teuer. Sie werden also Ihre eigene Fußballmeisterschaft ausrichten und stattdessen dort Werbung schalten. Es ist zwar billiger, aber auch weniger effektiv.
Was das Anpassen der Konfiguration anbelangt, so ist dies bei Software wie einem Webserver mit einer Konfigurationsdatei normalerweise einfacher zu handhaben, wodurch die Konfiguration leichter freigegeben, gesichert und wiederhergestellt werden kann.
Für die Client - Software wie ein Web - Browser, ist es viel besser , einen Konfigurationsassistenten zu erstellen , die zum ersten Mal ein neuer Benutzer erscheint läuft die Software, anstatt es an der Zeit bei der Installation zu tun. Der Hauptgrund ist, dass Linux ein Mehrbenutzer-Betriebssystem ist. Sie möchten es also trotzdem für jeden Benutzer anpassen. Dies erleichtert es auch, den Konfigurationsassistenten aus irgendeinem Grund später erneut auszuführen, ohne das Installationsprogramm für die Neuinstallation der gesamten Software behalten zu müssen. Diese Art von Assistenten ist in Linux-Software weit verbreitet.
quelle
Linux-Distributionen (auch, wie ich glaube, Unices mit BSD-Flair) haben eine benutzerfreundliche Oberfläche für die Programminstallation über sogenannte Paketmanager (oder Portverwaltung im BSD-Fall): pacman für Arch, dpkg für Debian / Ubuntu , und so weiter.
Mit diesen Paketmanagern können Programme mithilfe einheitlicher Konfigurationsdateien installiert werden. Sobald das von Ihnen benötigte Programm gemäß dem Paketmanager Ihrer Distribution gepackt ist, können Sie den Installationsbefehl einfach über das ausgewählte Paket ausführen (mit gelegentlichen benutzerspezifischen Anpassungen, wenn auch häufig gar nicht), und der Manager erledigt den Rest.
Paketmanager sind in der Regel benutzerfreundlicher als die programmspezifischen Installationsprozesse von Windows. Dies gilt nur für die einheitliche Art und Weise, in der Programme für die Installation gepackt werden. In der Regel können Sie auch die Package Manager-Datenbank nach dem gesuchten Programm abfragen, um die Abhängigkeiten zu ermitteln.
Sie unterstützen auch die zentrale Aktualisierung der Pakete.
quelle
dpkg
und APT werden sowohl in Debian als auch in Ubuntu verwendet.apt-get
,apt-cache
Undaptitude
sind Wrapper oben aufdpkg
.dpkg
Wird selten direkt verwendet. Ein Anwendungsfall, den ich mir vorstellen kann, ist die Installation eines Pakets aus einer.deb
Datei.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.
quelle
Zu groß ist beides. Das Linux-Distributionsmodell ist näher an AppStore / Play Store als das traditionelle Windows / Mac OS X-Modell - und selbst diese Plattformen bewegen sich von dem, was ich gehört habe, dorthin.
Die Konvention ist, dass es einfacher ist. Die meisten Argumente für den AppStore / Play Store gelten auch für Linux:
Darüber hinaus gibt es folgende Vorteile, die für AppStore / Play Store möglicherweise nicht gelten:
quelle
Normalerweise erfordert die Installation keine Interaktion mit einem Benutzer (
apt-get
z. B. die meisten Pakete) oder kann als Skript ausgeführt werden. Dies macht es sehr einfach zu automatisieren, um ein Stück Software auf vielen Maschinen bereitzustellen. Anstatt Dinge über den Assistenten zu erledigen, erledigen Sie dieselben Dinge über Skripte oder über Konfigurationsdateien.Angesichts der Tatsache, dass in der Linux-Welt das Terminal an erster Stelle steht und die GUI optional ist, wird deutlich, warum es ihnen an tatsächlichen Installationsassistenten mangelt.
Windows hingegen ist sehr benutzerorientiert. Die meisten MSI-Dateien können auf einfache Weise unbeaufsichtigt bereitgestellt werden, genauso wie die Windows-Installation unbeaufsichtigt sein kann (wie einfach / schwierig es ist, WAIK zum Laufen zu bringen, ist ein anderes Thema). Dies bedeutet auch, dass eine Reihe von Anwendungen für Windows nicht auf MSI basieren und nicht skriptfähig sind. Unter den Anwendungen für Unternehmen sind beispielsweise Adobe-Produkte dafür bekannt, dass sie sich nur schwer per Skript installieren lassen.
quelle
Die Zielgruppe ist unterschiedlich. Unix- und Unix-ähnliche Systeme wurden normalerweise von professionellen Programmierern, Systemadministratoren, Ingenieuren und ernsthaften Bastlern verwendet, die jedes System an ihre Bedürfnisse anpassten. Alle "Installationsassistenten" würden nur ihre Auswahl einschränken, anstatt Zugriff auf alle benötigten Variablen zu gewähren. Und die jetzt da draußen tun es immer noch.
Windows richtet sich nicht in gleicher Weise an Profis und hat daher allgemeinere Installationsprogramme, die sich an "Benutzer" richten, die nur das Ding installieren möchten. Linux sammelt immer mehr dieser Anwendertypen, die wahrscheinlich so etwas zu schätzen wissen, aber möglicherweise haben die meisten Distributionen immer noch den Fachmann im Sinn.
quelle