我有一款游戏目前可以在 Windows 和 Mac OS X 下运行,我想将其提供在 Linux 下。移植应该相当容易,因为它是一款基于 Java 的游戏,并且使用可在所有 3 个平台上使用的可移植库。

这个问题的困难部分和原因是将其打包,以便它可以在尽可能多的现代 Linux 发行版上运行。主要目标将是 Ubuntu 9。

Webstart 不是一种可接受的方式,.tar.gz 是最后的手段。我非常喜欢一个具有正确定义的依赖项(例如 Java)并且易于安装的包。

我还需要能够在 Windows 环境下构建包,因为我的构建链中的一些工具仅适用于 Windows。

有帮助吗?

解决方案

首先看看类似的项目是如何实现这一目标的。我想到的一个是 弗里科尔, ,一个基于Java的跨平台游戏。他们的 下载页面 有相当清楚的关于在许多平台上安装它的信息。他们还在以下网站提供套餐: 获取DEB 对于 Ubuntu 和 包装人 对于 OpenSuse。

一般来说,如果您想覆盖尽可能多的发行版,您应该考虑的格式是(按重要性的粗略顺序排列):

  1. Ubuntu .deb(如果可以的话也创建一个存储库)
  2. OpenSUSE .rpm 或 .ypm(1 单击安装)
  3. 费多拉.rpm
  4. .tar.gz 预编译包

然后是从源代码构建选项,或尽力而为的二进制安装程序。最后,看看其他流行的发行版,例如 Debian、Mandriva 和 BSD

一旦存在特定平台的软件包,您可能希望考虑将其接受到该发行版中。这将使用户更容易找到和获取。有关 ubuntu 进程的信息可以在这里找到:

(编辑:感谢乔尼克的建议,更好的列表。)

其他提示

看看零安装(http://0install.net/).

  • 任何人都可以安装软件

您不必成为管理员才能安装文字处理器 [更多]

  • 任何人都可以分发软件

您不需要得到发行版(或其他任何人)的祝福才能成为零安装的一部分;系统完全去中心化[更多]

  • 自动更新

当有可用更新时,零安装将通知您[更多]

  • 安全

如果一名用户下载了恶意程序,其他用户不会受到影响;用户可以共享下载,无需相互信任;安装不会执行任何下载的代码;在新软件发布之前总是要检查数字签名

可以使用DEB系统为Ubuntu。它会帮助你正确标注依赖关系。

一个用于包装指南可这里

好问题 - 我不知道答案(我想没有一个简单的,全方位的解决方案),但这里有一些需要考虑的要点,从一个Linux用户的角度

我认为名为.tar.gz(或.tar.bz2格式)不一定是坏的。 Linux用户使用它,例如许多商业软件包分发的方式。它往往比一个图形化的Windows风格的安装程序,如果主要的一点是,在一些位置只是提取文件。

一些(或许多?)用户已经安装JRE外的包管理系统,所以只提供RPM或DEB(这取决于具有安装为RPM或DEB JRE)可以是有问题的。 (我个人比较喜欢有几个版本的JRE(JDK实际上)安装在/usr/local/java)。所以至少要考虑与其他选项一起提供ZIP / GZ / BZ2软件包。

此外,了解如何创建Java软件的RPM包,看看 JPackage上

每个发行版可能有它的地方公共文件走自己的约定。结果 在Ubuntu中,常见的Java罐子去到/ usr / share / java目录。像公地CLI和liblog4j的东西存在。如果你使用其中任何一个,请确保您的deb依赖于相应的包。如果库是使用outisde您的应用程序,而不是在Ubuntu的回购,考虑将其在自己的deb,并根据这一点。您将需要创建一个文件夹在/ usr /共享/ [名]您的特定游戏瓶/然后创建一个shell脚本来启动游戏。此脚本应放置在/ usr / bin中(或/ usr /游戏)和执行的。

不要忘记依靠适当的Java包是(我认为太阳的Java#-jre包“的原因GJC是废话,开放的JDK是不是100%有,但(至少金属的LaF是FUBAR我不知道别的呢。)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top