Frage

Ich habe ein Spiel, das derzeit läuft unter Windows und Mac OS X und ich möchte es unter Linux zur Verfügung stellen. Die Portierung sollte ziemlich einfach sein, da es sich um ein Java-basiertes Spiel ist und verwendet portable Bibliotheken, die auf allen drei Plattformen verfügbar sind.

Der harte Teil und der Grund für diese Frage ist die Verpackung, so dass es so viele modernen Linux-Distributionen wie möglich bearbeitet. Das primäre Ziel wird Ubuntu 9.

Webstart ist keine akzeptable Art und Weise, tar.gz ist der letzte Ausweg. Ich würde stronly ein Paket bevorzugen, die korrekt definiert Abhängigkeiten (wie Java) hat und lässt sich leicht installieren.

Ich muß auch in der Lage sein, das Paket unter einer Windows-Umgebung zu bauen, da einige Tools in meiner Build-Kette nur für Windows sind.

War es hilfreich?

Lösung

Beginnen Sie mit der Suche, wie ein ähnliches Projekt dieses Ziel erreicht hat. Eines, das in den Sinn kommt ist FreeCol , ein Cross-Plattform Java-basiertes Spiel. Ihre Download-Seite rel="nofollow hat ziemlich klare Informationen über sie auf einer Reihe von Plattformen installieren. Sie haben auch Pakete an Standorten wie GetDEB für Ubuntu und PackMan für OpenSuse.

Im Allgemeinen, wenn Sie so viele Distributionen wie möglich schlagen wollen, sollten die Formate, die Sie berücksichtigen sind (in grober Reihenfolge der Wichtigkeit):

  1. Ubuntu .deb (erstellen auch ein Repository, wenn Sie können)
  2. OpenSUSE .rpm oder .ypm (1-Klick-Installation)
  3. Fedora .rpm
  4. .tar.gz vorkompilierte Paket

Dann wird ein Build von der Quelle Option oder ein Best-Effort binären Installer. Schließlich Blick auf die anderen populären Distributionen wie Debian, Mandriva und BSDs

Sobald ein Paket für eine bestimmte Plattform vorhanden ist, kann man sich auch überlegen, es in diese Verteilung zu akzeptieren bekommen. Dadurch wird es einfacher für die Benutzer zu finden und zu erwerben. Informationen über den Prozess für ubuntu kann hier gefunden werden:

(EDIT:. Bessere Liste, dank Jonik Vorschlag)

Andere Tipps

Haben Sie einen Blick auf Zero Install ( http://0install.net/ ).

  • Jeder kann Software installieren

Sie müssen nicht den Administrator nur ein Wort-Prozessor [mehr]

installieren
  • Jeder kann verteilen Software

Sie müssen nicht durch eine Verteilung gesegnet werden (oder jemand anderes) Teil der Null sein installieren; Das System ist vollständig dezentral [mehr]

  • Automatische Updates

Wenn Updates verfügbar sind, Null Sie installieren benachrichtigt [mehr]

  • Sicherheit

Wenn ein Benutzer lädt ein bösartiges Programm, können andere Benutzer sind nicht betroffen; Benutzer können Downloads teilen, ohne einander zu vertrauen hat; Die Installation ist nicht der heruntergeladenen Code auszuführen; Digitale Signaturen werden immer geprüft, bevor eine neue Software r

Sie können das deb-System für Ubuntu verwenden. Es wird Ihnen helfen, richtig zu markieren Abhängigkeiten.

Ein Leitfaden für die Verpackung verfügbar hier .

Gute Frage - ich weiß nicht, die Antwort (und ich denke, es ist keine einfache, allumfassende Lösung), aber hier sind einige Punkte zu beachten, aus der Sicht des Linux-Benutzers

.

Ich denke, .tar.gz (oder .tar.bz2) ist nicht unbedingt schlecht. Linux-Nutzer sind daran gewöhnt, und z.B. viele kommerzielle Softwarepakete sind auf diese Weise verteilt. Es schlägt oft einen grafischen Windows-Stil Installateur, wenn der Hauptpunkt ist, nur Dateien an einem bestimmten Ort zu extrahieren.

Einige (vielleicht viele?) Benutzer haben JRE außerhalb des Paket-Management-System installiert, so dass nur RPM oder deb anbietet (die JRE auf, wie RPM oder deb installiert abhängt) problematisch sein kann. (Ich persönlich bevor mehrere JRE-Versionen (JDK tatsächlich) unter /usr/local/java installiert sein.) Mindestens so bei betrachten bietet eine zip / gz / bz2 Paket zusammen mit anderen Optionen.

Auch erfahren Sie RPM-Pakete von Java-Software zu schaffen, werfen Sie einen Blick auf JPackage .

Jede Distribution kann seine eigene Konventionen, wo gemeinsame Dateien gehen.
In Ubuntu, gemeinsame Java-Gläser gehen in / usr / share / java. Dinge wie commons-cli und liblog4j existiert. Wenn Sie eines dieser verwenden, stellen Sie sicher, dass Ihre deb auf das entsprechende Paket abhängt. Wenn die Bibliothek der Verwendung outisde Ihre Anwendung ist, aber nicht in dem Ubuntu repos, hält es in seiner eigenen deb setzen und abhängig davon. Sie müssen einen Ordner für bestimmte Spiele Gläser in / usr / share / [name] erstellen / und dann ein Shell-Skript erstellen, das Spiel zu starten. Dieses Skript sollte in / usr / bin (oder / usr / Spiele) und ausführbar sein gesetzt werden.

Vergessen Sie nicht, auf einem geeigneten Java-Paket abhängig entweder (Ich schlage vor, die Sonne-java # -jre Pakete ‚cause GJC ist Mist und Open-JDK nicht zu 100% dort noch (zumindest der METAL LaF ist fubar , ich weiß nicht, was sonst noch noch.)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top