Библиотека сайта 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