我想打包我的 Java Web 应用程序http://kunagi.org/适用于 Ubuntu (和 Debian)。
软件包是否应该创建一个用户kunagi
,为现有的提供初始化脚本和配置文件tomcat6
,以便我的应用程序在具有其自身权限的单独 jvm 实例中运行?或者软件包是否应该将 Web 应用程序放入/var/lib/tomcat6/webapps/
,以便它使用 tomcat 进程和权限运行?
答案1
这应该是系统管理员的选择。只需打包应用程序即可开箱即用。如果系统管理员想要提高安全性,那是他的工作 :)
答案2
您无需修改现有的 tomcat/webapp 安装,而是可以提供 (1) 与嵌入式 Web 服务器一起运行的独立软件包,以及 (2) 提供一个简单的“.war”文件,人们可以下载该文件并将其安装到自己的 tomcat(或 jetty 或 glassfish 或...)服务器中。(如果您的 versino 是独立服务器,那么将 war 作为单独下载提供也是轻而易举的。)
至于升级,独立版本可以使用您的包管理器(apt、rpm、yum 等)进行升级;但是,如果人们将 war 安装到 tomcat 中,则安装它的人必须手动进行升级,或者您可以在 Web 应用程序中提供更新程序。有关此内容的一个非常好的示例,请参阅詹金斯(原名哈德森)。 Sonatype/nexus还有单独的安装选项。
给最终用户的一般指导是:为了快速简便地在个人电脑上安装,请使用独立版本。为了成熟的数据中心和长期的管理方便,请使用现有应用服务器中的“.war”。
包管理器修改现有 tomcat 安装的问题在于,该 tomcat 中可能存在大量的 webapp,并且通常tomcat 版本和 webapps 版本之间存在意外的紧密依赖关系。最好先升级 tomcat,测试所有 webapps 是否仍能正常工作,然后逐个升级 webapps。(或者,也许我只是有点偏执,因为从历史上看,这是对我唯一有效的方法。)