Pergunta

Eu tenho um jogo que está sendo executado no Windows e Mac OS X e eu gostaria de torná-lo disponível em Linux. A portabilidade deve ser bastante fácil, já que é um jogo baseado em Java e usa bibliotecas portáteis que estão disponíveis em todas as 3 plataformas.

A parte mais difícil ea razão para esta pergunta é a embalagem-lo para que ele funciona em como muitas distribuições Linux modernas possíveis. O alvo principal será Ubuntu 9.

Webstart não é uma forma aceitável, .tar.gz é o último recurso. Eu stronly preferir um pacote que definiu corretamente as dependências (como Java) e instala facilmente.

Eu também preciso ser capaz de construir o pacote em um ambiente Windows já que algumas ferramentas em minha cadeia de construção são somente para Windows.

Foi útil?

Solução

Comece por olhar como um projeto semelhante alcançou este. Um que vem à mente é FreeCol , uma plataforma cruzada Java jogo baseado. Sua href="http://www.freecol.org/download.html" rel="nofollow página download tem a informação bastante clara sobre instalá-lo em uma série de plataformas. Eles também têm pacotes disponíveis em sites como o GetDEB para Ubuntu e PackMan para o openSUSE.

Geralmente, se você quer bater como muitas distribuições quanto possível, os formatos que você deve considerar são (em ordem aproximada de importância):

  1. Ubuntu .deb (também criar um repositório se você puder)
  2. OpenSUSE .rpm ou .ypm (1 clique instalar)
  3. Fedora .rpm
  4. pacote .tar.gz pré-compilados

Em seguida, uma compilação opção de fonte, ou um melhor instalador esforço binário a partir. Finalmente, olhar para outras distros populares, como Debian, Mandriva, e BSDs

Uma vez que existe um pacote para uma plataforma específica, você pode querer considerar começá-lo aceitar nessa distribuição. Isto tornará mais fácil para os usuários a encontrar e adquirir. Informações sobre o processo para o Ubuntu pode ser encontrada aqui:

(EDIT:. Melhor lista, graças à sugestão de Jonik)

Outras dicas

Tenha um olhar em Zero Install ( http://0install.net/ ).

  • Qualquer pessoa pode instalar software

Você não tem que ser o administrador só para instalar um processador de texto [mais]

  • Qualquer um pode distribuir software

Você não precisa ser abençoado por uma distribuição (ou qualquer outra pessoa) para ser parte de Zero instalar; O sistema é totalmente descentralizada [mais]

  • Atualizações automáticas

Quando as atualizações estão disponíveis, Zero instalação irá notificá-lo [mais]

  • Segurança

Se um usuário baixa um programa malicioso, outros usuários não são afetados; Os usuários podem compartilhar downloads sem ter que confiar um no outro; Instalação não executa qualquer código baixado; As assinaturas digitais são sempre verificados antes de um novo software é r

Você pode usar o sistema deb para o Ubuntu. Vai ajudá-lo a marcar corretamente dependências.

Um guia para a embalagem está disponível aqui .

Boa pergunta -. Eu não sei a resposta (e eu acho que não é uma tarefa fácil, abrangente solução), mas aqui estão alguns pontos a considerar, do ponto de vista de um usuário Linux

Eu acho .tar.gz (ou .tar.bz2) não é necessariamente tão ruim assim. Os usuários do Linux são usados ??para isso, e por exemplo, muitos pacotes de software comerciais são distribuídos dessa forma. Muitas vezes bate um instalador do Windows-estilo gráfica se o ponto principal é apenas extrair arquivos em algum local.

Alguns (talvez muitas?) Usuários não JRE instalado fora do sistema de gerenciamento de pacotes, assim oferecendo apenas RPM ou deb (que depende de ter JRE instalado como RPM ou deb) pode ser problemático. (Pessoalmente eu prefiro ter várias versões do JRE (JDK na verdade) instalado sob /usr/local/java.) Assim, pelo menos, considerar oferecer a / GZ / pacote zip bz2 juntamente com outras opções.

Além disso, para aprender sobre a criação de pacotes RPM do software Java, dê uma olhada JPackage .

Cada distro pode ter seu próprias convenções de onde os arquivos comuns ir.
No Ubuntu, frascos java comum entrar em / usr / share / java. Coisas como commons-cli e liblog4j existe. Se você usar qualquer um desses, verifique se o deb depende do pacote apropriado. Se a biblioteca é de uso outisde sua aplicação, mas não nos repositórios do Ubuntu, considere colocá-lo em seu próprio deb e dependendo disso. Você precisará criar uma pasta para seus frascos jogos específicos em / usr / share / [nome] / e, em seguida, criar um shell script para iniciar o jogo. Este script deve ser colocado em / usr / bin (ou / usr / jogos) e ser executável.

Não se esqueça de depender de um pacote java apropriado quer (eu sugiro que os pacotes sun-java # -jre 'causa GJC é uma porcaria e-jdk aberta não é 100% lá ainda (Pelo menos o METAL LaF é fubar , eu não sei sobre qualquer outra coisa ainda.)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top