Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

Как создать пакет в формате deb для веб-приложения Java

Оригинал: How to create .deb Debian package for Java web application
Автор: Dan Nanni
Дата публикации: 4 апреля 2013 года
Перевод: А. Кривошей
Дата перевода: декабрь 2013 г.

Предположим, вы собрали веб-приложение Java в виде сервлета. Теперь вы хотите создать deb-пакет для этого веб-приложения, чтобы при установке он автоматически устанавливал все требуемые пакеты (такие как Java и веб-сервер Tomcat) и разворачивал сервлет Java на Tomcat.

Я предполагаю, что вы уже собрали и экспортировали сервлет в файл .war. Тогда пакет Debian будет состоять из файла .war и информации о всех зависимостях. Ниже описано, как создать пакет .deb из файла .war.

Сначала установим утилиты, необходимые для сборки пакетов 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    : my_email@unknown 
Date             : Tue, 02 Apr 2013 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, вам не нужны правила сборки. Удалите все ссылки на "makefile" из debian/rules.

$ grep -v makefile debian/rules > debian/rules.temp
$ mv debian/rules.temp debian/rules

Следующий шаг - модификация debian/install. Здесь вы задаете список файлов для установки, а также директории для установки. В нашем примере файлы соответствуют файлу .war, а директория для установки - это папка webapps сервера Tomcat. Предполагая, что файл .war был собран для веб-сервера Tomcat7, вам необходимо модифицировать debian/install, как показано ниже.

$ echo myapp.war /var/lib/tomcat7/webapps > debian/install

Модифицируем debian/source/format, так как мы не собираемся пакет с множеством промежуточных версий.

$ echo "1.0" > debian/source/format

Удалим ненужные файлы примеров.

$ rm debian/*.ex

Модифицируйте контрольную информацию о вашем пакете. Важно указать в качестве зависимости пакет tomcat7 (в поле "Depends:"). Задавать в качестве зависимости 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