Welche Installer-Typen sollte kommerzielle Software zur Unterstützung von Linux verwenden?

9

Der Quellcode ist nicht geöffnet oder kostenlos, daher ist eine Kompilierung bei der Installation keine Option. Bisher habe ich Entwickler gesehen, die:

  • Wenn Sie eine tar.gz-Datei bereitstellen, kann der Benutzer die Dekomprimierung an einem geeigneten Ort vornehmen.
  • Stellen Sie einer .tar.gz ein install.sh-Skript zur Verfügung, um ein Basisinstallationsprogramm auszuführen, und fordern Sie den Benutzer möglicherweise sogar zur Installation von Optionen auf.
  • Stellen Sie RPM- und / oder Deb-Dateien bereit, damit Benutzer die nativen Paketverwaltungstools, mit denen sie vertraut sind, weiterhin zum Installieren / Aktualisieren / Deinstallieren verwenden können.

Möchten Sie die meisten Linux-Distributionen unterstützen, das Leben der Benutzer so einfach wie möglich gestalten und dennoch so wenig Infrastruktur wie Build / Packaging / Installer wie möglich beibehalten.

Suchen Sie nach Empfehlungen zum Packen meiner Software.

Mike Gray
quelle

Antworten:

19

Ich sehe zwei Möglichkeiten, es zu betrachten.

Eine besteht darin, auf die beliebtesten Linuxes abzuzielen, native Pakete für jedes bereitzustellen und Pakete in der Reihenfolge ihrer Beliebtheit bereitzustellen. Vor einigen Jahren bedeutete dies, zuerst RPMs für Red Hat-Linuxe bereitzustellen und dann, wenn es die Zeit erlaubte, das Quell-RPM für jedes weniger beliebte RPM-basierte Linux neu zu erstellen. Aus diesem Grund ist beispielsweise die Mandriva-Drehzahl häufig etwas älter als die Red Hat- oder SuSE-Drehzahl. Da Ubuntu in den letzten Jahren so beliebt war, möchten Sie vielleicht mit .deb beginnen und später RPM hinzufügen.

Das andere ist, zu versuchen, alle Linuxes gleichzeitig anzusprechen, was diejenigen versuchen, die binäre Tarballs bereitstellen. Ich mag diese Option als Systemadministrator und Endbenutzer wirklich nicht. Solche Tarballs verteilen Dateien auf dem gesamten System, auf dem Sie sie entpacken, und es gibt später keine Option für Feinheiten wie Deinstallation, Paketüberprüfung, intelligente Upgrades usw.

Sie können einen gemischten Ansatz ausprobieren: native Pakete für die beliebtesten Linuxes sowie binäre Tarballs für Oddball-Linuxes und Old-School-Systemadministratoren, die Paketmanager aus irgendeinem Grund nicht mögen.

Warren Young
quelle
Dies ist fast genau der Ansatz, den ich bisher gewählt habe - angefangen mit RPM für Redhat / Fedora / CentOS, das jetzt Ubuntu / Debian .deb-Dateien bereitstellt, aber noch nicht entschieden hatte, ob das Erstellen eines tar.gz noch nützlich und notwendig wäre. Klingt so, als wäre es gut, wenn Benutzer mit weniger beliebten Distributionen zumindest die Software selbst zum Laufen bringen könnten, anstatt nicht einmal eine Option zu haben. Vielen Dank.
Mike Gray
2
Das Erstellen eines tragbaren binären Tarballs kann viel mehr Arbeit bedeuten, als Sie sich vorstellen. Nur eine mögliche Falle ist, dass sich der g ++ ABI im Laufe der Jahre mehrmals geändert hat. Daher müssen Sie möglicherweise Binärversionen aller von Ihnen verwendeten C ++ - Bibliotheken ausliefern, anstatt die Plattformversionen zu verwenden, um eine ausreichend breite Kompatibilität zu erreichen. Dies ist einer der Gründe, warum eine einzelne binäre RPM nicht überall installiert und ausgeführt wird. Es scheint jedoch nur eine kulturelle Akzeptanz dieser Tatsache bei RPM zu geben, während Tarballs - wahrscheinlich weil sie ein alter Standard sind - überall funktionieren sollen.
Warren Young
Ich habe gesehen, dass der Mix-Ansatz der beste ist: dass man viele Leute erreichen kann und der Aufwand nicht so groß ist.
Hugo
Einen einfachen, binären Tarball herzustellen ist immer noch gut. Insbesondere, wenn dieser Tarball alle Spieledateien in einem eigenständigen Verzeichnis speichert. Einige Benutzer können es entpacken und ausführen, ohne es zu installieren. und es wird auch anderen Distributionen (wie Gentoo, Arch usw.) das Leben leichter machen, weil es für sie einfacher sein wird, diesen Tarball auszupacken / neu zu verpacken.
Denilson Sá Maia
4

Stellen Sie auf jeden Fall sicher, dass Sie ein "Support-Skript" enthalten, mit dem Sie so viele Informationen wie möglich auf dem Zielsystem sammeln können, um Fehler zu beheben. Ich garantiere Ihnen, dass Sie auf Probleme stoßen und das Debuggen von Dingen, die der Kunde sagt, im Vergleich zur Realität oft sehr unterschiedlich ist.

vwduder
quelle
0

Ich bevorzuge immer ein Paket (rpm | deb etc.). Abhängig von der Art der Software kann es sich lohnen, Pakete für bestimmte Distributionen (Rhel / Centos usw.) auszurichten, aber Sie werden wahrscheinlich nie genug Pakete für alle rollen können.

Installationsskripte können je nach Skript in Ordnung sein. Für mich ist das Wichtigste bei nicht gepackter Software, dass es einfach ist, sie an einem von mir gewählten Ort zu installieren.

theotherreceive
quelle
0

Spiele verwenden in der Regel ein Installationsprogramm (früher Loki Installer, heutzutage MojoSetup), das ein Spiel sauber in ein Präfix installiert und Dinge wie Symbole verarbeitet.

directhex
quelle