Назад | Перейти на главную страницу

Резервное копирование tomcat7 для Debian squeeze

Я создаю .deb установочные пакеты для нашего программного обеспечения, которое зависит от tomcat7. К сожалению, этого пакета нет в Debian squeeze, который поставляется только с пакетом tomcat6.

Предстоящий выпуск Debian 7 (Wheezy) поставляется с как Tomcat 6, так и 7. Означает ли это, что я могу взять исходный код из Wheezy, пересобрать его для Squeeze и поместить в наш собственный репозиторий вместе со сборками нашего собственного программного обеспечения? Или это может как-то привести к конфликтам в системах Squeeze?

Есть инструкции в нескольких местах как перенести кота, однако меня беспокоит то, что Tomcat 7 не является частью официального проекта резервного копирования Debian 6. Я не хочу портить системы ни одного из наших пользователей. Например, если они попытаются установить наше программное обеспечение в системе, в которой уже tomcat6 установлен, что, как мне кажется, конфликтует с tomcat7. В этом случае он должен разрешить это изящно, так же, как это происходит в Wheezy или Ubuntu.

Судя по ссылке, которую вы показываете, бэкпорт Tomcat7 действительно кажется простым. И если все работает хорошо, у вас должен получиться пакет tomcat7, который соответствует вашим требованиям. Но...

Возможно, это сработало год назад (когда появилась запись в блоге), но теперь я думаю, что есть загвоздка. Собственно, шаг apt-get build-dep tomcat6 немного сложно. Что действительно нужно сделать, так это apt-get build-dep tomcat7. Как только вы попытаетесь это сделать, вы увидите, что работа немного утомительнее. Несколько других пакетов появятся как зависимости сборки, и вам нужно будет установить их, если они доступны, или собрать их из источников, если нет.

Процесс сборки

По результатам своих испытаний я обнаружил, что для создания tomcat7для ваших пользователей вам необходимо:

  • включить squeeze-backports и установить оттуда maven-repo-helper и javahelper,
  • строить из сырых источников jakarta-taglibs-standard и установите его на свой сборочный компьютер.

В итоге вся процедура, как я это сделал (номера версий указаны по состоянию на 06.03.2013):

# adding wheezy sources to your apt config and preparing the build host:
echo "deb http://backports.debian.org/debian-backports squeeze-backports main" >> /etc/apt/sources.list
echo "deb-src http://ftp.debian.org/debian/ wheezy main" >> /etc/apt/sources.list
apt-get update
apt-get install dpkg-dev build-essential fakeroot
# manually adding missing build dependencies
apt-get -t squeeze-backports install javahelper maven-repo-helper
# getting the source package for jakarta-taglibs-standard, building and installing it on the build machine:
cd /usr/local/src/
apt-get -t wheezy source jakarta-taglibs-standard
apt-get build-dep jakarta-taglibs-standard
cd jakarta-taglibs-standard-1.1.2
dpkg-buildpackage -rfakeroot -b
cd ..
dpkg -i libjstl1.1-java_1.1.2-2_all.deb
dpkg -i libjakarta-taglibs-standard-java_1.1.2-2_all.deb
# getting the source package for tomcat7 and building it (this takes some time...)
apt-get -t wheezy source tomcat7
apt-get build-dep tomcat7
cd tomcat7-7.0.28
dpkg-buildpackage -rfakeroot -b

Особенность исходного пакета tomcat7 7.0.28

Все, что вам нужно, - это приведенные выше инструкции. Однако в папке есть просроченный сертификат. tomcat7 7.0.28-4 исходный код в репозитории Wheezy / testing (срок действия самоподписанного сертификата истек 27 февраля 2013 г.). Это приведет к сбою сборки в модульных тестах.

Есть 2 решения, чтобы решить эту проблему:

  • измените дату на вашем сборочном компьютере до 27 февраля 2013 г.,
  • отключите модульный тест для вашей сборки, это можно сделать в build.properties.default файл, вам необходимо изменить 3 свойства:

    • execute.test.bio=false
    • execute.test.nio=false
    • execute.test.apr=false

Монтаж

Как вы видели в своей ссылке, вы придете с несколькими tomcat7-... пакеты, которые вам нужно будет предоставить своим пользователям. Лучше всего через ваш собственный репозиторий, чтобы они могли легко установить все это.

Со всеми этими пакетами все должно быть в порядке, и у ваших пользователей действительно будет резервный порт Tomcat 7 для Squeeze. Если ваши пользователи затем перейдут на Wheezy, у них не должно возникнуть проблем, так как любой новый пакет Tomcat 7 в Wheezy будет иметь больший номер версии, чем тот, который вы им предоставили. Они прекрасно получат обновления Wheezy.

Обслуживание

И последнее, что вам нужно учитывать, - это безопасность Tomcat 7 или исправления ошибок, которые появятся в Wheezy позже. Если серьезный tomcat7 обновление появляется в Wheezy, вам действительно стоит подумать о восстановлении собственного tomcat7 пакеты и предоставлять те же обновления своим пользователям.