Backporting tomcat7 для Debian выжимать

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

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

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

1 ответ

Решение

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

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

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

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

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

В итоге вся процедура, которую я сделал, выглядела так (номера версий указаны по состоянию на 03.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 пакеты и предоставлять те же обновления для ваших пользователей.

Другие вопросы по тегам