Pregunta

Tengo un juego que actualmente se ejecuta en Windows y Mac OS X y me gustaría para que esté disponible en Linux. La portabilidad debería ser bastante fácil, ya que es un juego basado en Java y utiliza las bibliotecas portátiles que están disponibles en las 3 plataformas.

La parte dura y la razón de esta pregunta es el envase de forma que funciona en tantas distribuciones de Linux modernas como sea posible. El objetivo principal será Ubuntu 9.

Webstart no es una forma aceptable, .tar.gz es el último recurso. Yo preferiría stronly un paquete que tiene dependencias (como Java) correctamente definido y se instala fácilmente.

También es necesario ser capaz de construir el paquete en un entorno de Windows, ya que algunas herramientas en mi cadena de acumulación son sólo para Windows.

¿Fue útil?

Solución

Para empezar, mirando cómo un proyecto similar se ha logrado esto. Uno que viene a la mente es Freecol , un juego basado en la plataforma Java cruz. Su página de descarga tiene información bastante clara acerca de la instalación en un número de plataformas. También tienen paquetes disponibles en sitios como GetDeb para Ubuntu y PackMan para OpenSuse.

En general, si quieres golpear tantas distribuciones como sea posible, los formatos que usted debe considerar son (en orden de importancia aproximado):

  1. Ubuntu .deb (también crear un repositorio si puede)
  2. OpenSUSE .rpm o .ypm (1 Haga clic en Instalar)
  3. Fedora .rpm
  4. .tar.gz paquete pre-compilado

A continuación, una acumulación de opción de fuente, o una mejor instalador binario esfuerzo. Por último, mirar a otras distribuciones populares como Debian, Mandriva, y BSD

Una vez que existe un paquete para una plataforma específica, es posible que desee considerar la obtención de aceptar que en esa distribución. Esto hará que sea más fácil para los usuarios encontrar y adquirir. La información sobre el proceso para ubuntu se puede encontrar aquí:

(EDIT:. Mejor lista, gracias a la sugerencia de Jonik)

Otros consejos

Tener un vistazo a cero Instalar ( http://0install.net/ ).

  • Cualquiera puede instalar software

Usted no tiene que ser el administrador acaba de instalar un procesador de textos [más]

  • Cualquiera puede distribuir software

No es necesario ser bendecidos por una distribución (o cualquier otro) para formar parte de Zero Install; El sistema está completamente descentralizado [más]

  • Las actualizaciones automáticas

Cuando las actualizaciones están disponibles, Zero Install le notificará [más]

  • Seguridad

Si un usuario descarga un programa malicioso, otros usuarios no se vean afectados; Los usuarios pueden compartir descargas sin tener que confiar en los demás; La instalación no se ejecuta nada del código descargado; Las firmas digitales siempre se comprueban antes de un nuevo software es r

Puede utilizar el sistema deb para Ubuntu. Te ayudará a marcar correctamente las dependencias.

Una guía para el embalaje está disponible href="https://wiki.ubuntu.com/PackagingGuide" aquí .

Buena pregunta - No sé la respuesta (y supongo que no hay una solución fácil que lo abarca todo), pero aquí hay algunos puntos a considerar, desde el punto de vista de un usuario de Linux

.

Creo .tar.gz (o Tar.bz2) no es necesariamente tan malo. Los usuarios de Linux están acostumbrados a ello, y por ejemplo, muchos paquetes de software comerciales se distribuyen de esa manera. A menudo es mejor que un instalador gráfico de estilo de Windows si el punto principal es que acaba de extraer los archivos en algún lugar.

Algunos (quizás muchos?) Usuarios han instalado JRE fuera del sistema de gestión de paquetes, por lo que ofrece solamente RPM o DEB (que depende de tener instalado como RPM o DEB JRE) puede ser problemática. (Personalmente prefiero tener varias versiones de JRE (JDK en realidad) instalado bajo /usr/local/java.) Así que al menos pensar en ofrecer un paquete de bz2 gz zip / / junto con otras opciones.

Además, para aprender a crear paquetes RPM de software de Java, echar un vistazo a JPackage .

Cada distribución puede tener sus propias convenciones de donde van los archivos comunes.
En Ubuntu, frascos java comunes entran en / / share / java usr. Cosas como bienes comunes-CLI y liblog4j existe. Si utiliza cualquiera de estos, asegúrese de que su deb depende del paquete apropiado. Si la biblioteca es de uso llegad su aplicación, pero no en los repositorios de Ubuntu, considerar la posibilidad de que en su propia deb y en función de eso. Usted tendrá que crear una carpeta para los frascos de juegos específicos en / usr / share / [nombre] / y luego crear un script de shell para iniciar el juego. Este script debe ser colocado en / usr / bin (o / usr / games) y sea ejecutable.

No se olvide de depender de un paquete de Java adecuada, ya sea (sugiero causa gjc los -jre paquetes de sun-java #' es una porquería y JDK abierta no es 100% allí todavía (al menos la METAL LaF es fubar , no sé de nada más aún.)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top