我编写了一个 Java 免费软件(封闭源代码)产品,我将其部署在 Web 主机上并通过 JNLP 分发,包括 Linux 客户端。
如果可能的话,我计划建议将该产品包含在几个 Linux 发行版中,“按原样”(基于 JNLP)。
我是否已经联系发行版,或者我需要重新配置某些东西(在另一台主机上部署,将 JNLP 转换为某些东西等)?你的经验是什么?
我会说免费软件 JNLP 应用程序与 Linux 发行版倾向于包含的内容完全相反。
首先,JNLP 不适用于本机包管理解决方案。如果您想将应用程序包含在发行版中,则需要以本机格式打包并以标准方式进行更新。
其次,大多数发行版都支持开源包,并且许多发行版不会在其默认存储库中包含非开源包。某些发行版可能具有特定的非免费存储库。在 OpenJDK 之前,您甚至可能连 Java 本身都不在这些存储库中。
在我看来,您最好尝试自己建立用户群,因为您可以完全控制发布等。
通常,Linux 发行版对无法集成到发布计划中的东西不太感兴趣。由于 JNLP 允许您随时部署新版本,因此他们无法在发布前进行版本冻结。这会将您排除在大多数发行版之外——出于这个原因,Debian 甚至删除了 Adobe 的 flash 插件,如果他们要删除 Flash,不要指望他们会为不太知名的应用程序例外。
如果你愿意将它作为一个普通的 .jar 分发,你可能能够得到它 - 对于 debian,你需要阅读Debian 新维护者指南和关于如何打包东西的Debian 政策,提交 ITP(打算打包),上传一个包,然后在debian-mentors 邮件列表上寻求赞助。更多信息可以在Debian 导师常见问题解答中找到。提交给 Debian 的软件包也将在适当的时候进入 Ubuntu。
当然,其他发行版会有不同的政策;如果有疑问,请查看他们的常见问题解答,或在适当的邮件列表中询问相关发行版。
找出一种方法在您希望包含软件的每个平台上正确打包它,并为严格的软件管理(冻结、多个版本等,如果您希望将代码包含在标准安装中)做好准备。
否则,您可以创建一个简单的包,其中仅包含指向 JNLP 页面的链接,该页面可能包含在非核心部分中。值得一试。
我们在谈论什么应用程序?
Java 程序往往很难打包和维护。因此,指南因发行版而异。因此,您应该首先查看一些流行发行版的具体指南。
除此之外:独立于包管理器进行自我更新的所有内容对于包的用户和维护者来说都是真正的痛苦,因此您应该考虑将不同的分发模型包含在 linux 发行版中。