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
пакеты и предоставлять те же обновления для ваших пользователей.