Question

J'ai un jeu qui fonctionne actuellement sous Windows et Mac OS X et je voudrais le rendre disponible sous Linux. Le portage devrait être assez facile car il est un jeu basé sur Java et utilise des bibliothèques portables qui sont disponibles sur les 3 plates-formes.

La partie la plus difficile et la raison de cette question est l'emballer de telle sorte que cela fonctionne sur autant de distributions Linux modernes que possible. L'objectif principal sera Ubuntu 9.

Webstart n'est pas une manière acceptable, tar.gz est le dernier recours. Je préfère stronly un paquet qui a des dépendances correctement défini (comme Java) et installe facilement.

Je dois aussi être en mesure de construire le paquet dans un environnement Windows depuis quelques outils dans ma chaîne de construction sont Windows uniquement.

Était-ce utile?

La solution

Commencez par regarder comment un projet similaire a atteint cet objectif. Celui qui vient à l'esprit est freecol , un jeu basé sur Java plate-forme de croix. Leur page de téléchargement contient des informations assez claires sur l'installation sur plusieurs plates-formes. Ils ont également des forfaits disponibles sur des sites tels que GetDeb pour Ubuntu et PackMan pour OpenSuse.

En général, si vous voulez frapper autant de distributions que possible, les formats que vous devriez considérer sont (en ordre d'importance):

  1. Ubuntu .deb (également créer un dépôt si vous le pouvez)
  2. OpenSUSE .rpm ou .ypm (1 cliquez sur Installer)
  3. Fedora .rpm
  4. .tar.gz package pré-compilé

Ensuite, une accumulation de l'option source, ou un meilleur installateur binaire effort. Enfin, regardez les autres distros populaires comme Debian, Mandriva, et BSDs

existe Une fois qu'un package pour une plate-forme spécifique, vous pouvez envisager l'obtenir d'accepter dans cette distribution. Ce sera plus facile pour les utilisateurs de trouver et d'acquérir. Informations sur le processus de ubuntu se trouve ici:

(EDIT:. Une meilleure liste, grâce à la suggestion de Jonik)

Autres conseils

Jetez un oeil à zéro Installer ( http://0install.net/ ).

  • Tout le monde peut installer le logiciel

Vous ne devez pas être l'administrateur juste pour installer un traitement de texte [plus]

  • Tout le monde peut distribuer des logiciels

Vous n'avez pas besoin d'être béni par une distribution (ou quelqu'un d'autre) pour faire partie de zéro d'installation; Le système est complètement décentralisé [plus]

  • Mises à jour automatiques

Lorsque les mises à jour sont disponibles, sans installation vous avertira [plus]

  • Sécurité

Si un utilisateur télécharge un programme malveillant, les autres utilisateurs ne sont pas affectés; Les utilisateurs peuvent partager téléchargements sans avoir à faire confiance; L'installation n'exécute pas du code téléchargé; Les signatures numériques sont toujours vérifiés avant le nouveau logiciel est r

Vous pouvez utiliser le système deb pour Ubuntu. Il va vous aider à marquer les dépendances correctement.

Un guide pour l'emballage est disponible .

Bonne question - je ne connais pas la réponse (et je suppose qu'il n'y a pas une solution facile, qui englobe tout), mais voici quelques points à considérer, du point de vue d'un utilisateur Linux

.

Je pense que .tar.gz (ou .tar.bz2) ne sont pas nécessairement mauvais. Les utilisateurs de Linux sont habitués, et par exemple de nombreux logiciels commerciaux sont distribués de cette façon. Il bat souvent un installateur graphique de style Windows si le point principal est d'extraire simplement les fichiers à un endroit.

Certains (peut-être beaucoup?) Utilisateurs ont installé à l'extérieur du JRE système de gestion des paquets, offrant ainsi que RPM ou DEB (qui dépend d'avoir installé en tant que RPM JRE ou deb) peut être problématique. (Personnellement, je préfère avoir plusieurs versions de JRE (JDK effectivement) installé sous /usr/local/java.) Donc, au moins envisager d'offrir un paquet zip / gz / bz2 ainsi que d'autres options.

En outre, pour en savoir plus sur la création de packages RPM de logiciels Java, jetez un oeil à JPackage .

Chaque distro peut avoir ses propres conventions où les fichiers communs vont.
Dans Ubuntu, pots de java communs vont dans / usr / share / java. Des choses comme commons-cli et liblog4j existe. Si vous utilisez un de ces derniers, assurez-vous que votre deb dépend du package approprié. Si la bibliothèque est d'utilisation outisde votre application, mais pas dans les prises en pension Ubuntu, envisagez de le mettre dans sa propre deb et selon que. Vous devez créer un dossier pour vos pots de jeux spécifiques dans / usr / share / [nom] / puis créer un script shell pour lancer le jeu. Ce script doit être placé dans / usr / bin (ou / usr / jeux) et être exécutable.

Ne pas oublier de dépendre d'un package java approprié soit (je vous conseille le soleil java # paquets -jre de la GJC cause est de la merde et open-jdk est pas à 100% encore là (au moins le METAL LaF est fubar , je ne sais pas quoi que ce soit d'autre encore.)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top