Я создаю .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
для ваших пользователей вам необходимо:
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-4
исходный код в репозитории Wheezy / testing (срок действия самоподписанного сертификата истек 27 февраля 2013 г.). Это приведет к сбою сборки в модульных тестах.
Есть 2 решения, чтобы решить эту проблему:
отключите модульный тест для вашей сборки, это можно сделать в 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
пакеты и предоставлять те же обновления своим пользователям.