如何为 Java Web 应用程序创建 .deb Debian 包
假设您已经构建了一个 Java Web 应用程序作为 Java servlet。现在您想要为 Java Web 应用程序创建 .deb Debian 软件包,这样当您安装 .deb 软件包文件时,它将自动安装任何必备软件包(例如 Java 和 Tomcat Web 服务器),并在 Apache Tomcat 上部署 Java servlet。
我假设您已经构建了一个 Java servlet 并将其导出到 .war
文件中。那么 Debian 软件包将仅包含 .war
blob 和任何依赖项信息。以下是有关如何从 .war 文件创建 .deb 包的指南。
首先,安装构建 Debian 软件包所需的任何软件包。
$ sudo apt-get install dh-make debhelper devscripts fakeroot
为您的应用程序创建一个目录。
$ mkdir myapp-0.1
接下来,将 .war
应用程序文件复制到该目录。
$ cp myapp.war myapp-0.1
$ cd myapp-0.1
创建打包所需的骨架文件。
$ dh_make -s --indep --createorig
Maintainer name : My Name
Email-Address : [email
Date : Tue, 02 Apr 2020 11:33:28 -0400
Package Name : myapp
Version : 0.1
License : blank
Type of Package : Independent
Hit to confirm:
一旦你点击<enter>
,它将在myapp-0.1/debian/
中创建几个骨架文件
由于您正在打包预构建的 .war
文件,因此在打包规则中不需要任何构建过程。从 debian/rules
中删除对 makefile
的任何引用。
$ grep -v makefile debian/rules > debian/rules.temp
$ mv debian/rules.temp debian/rules
下一步是修改 debian/install
。您可以在此处指定要安装的文件列表及其各自的安装目录。在我们的示例中,要安装的文件对应于 .war
文件,安装目录是 Tomcat 的 webapps 目录。假设 .war
文件是为 Tomcat7 Web 服务器构建的,您可以按如下方式修改 debian/install。
$ echo myapp.war /var/lib/tomcat7/webapps > debian/install
修改 debian/source/format 因为我们不会构建基于 quilt 的包。
$ echo "1.0" > debian/source/format
删除不必要的示例文件。
$ rm debian/*.ex
修改你的包的控制信息。重要的是,您需要指定 tomcat7
作为依赖包(在“Depends:
”字段中)。您不需要将 Java 指定为依赖项,因为通过添加 tomcat7
隐式暗示了 Java 依赖项,而 Tomcat7 又依赖于 Java。
$ vi debian/control
Source: myapp
Section: unknown
Priority: extra
Maintainer: My Name
Build-Depends: debhelper (>= 8.0.0)
Standards-Version: 3.9.3
Homepage:
#Vcs-Git: git://git.debian.org/collab-maint/indoornav.git
#Vcs-Browser: http://git.debian.org/?p=collab-maint/indoornav.git;a=summary
Package: myapp
Architecture: all
Depends: tomcat7
Description: This is my web application.
This is a long description of my web application.
最后,构建包。
$ debuild -us -uc
构建完成后,您将在父目录中生成.deb
文件。
$ ls ../*deb
myapp_0.1-1_all.deb