Backporting tomcat7 para o squeeze Debian

2

Estou criando pacotes de instalação .deb para nosso software, que tem uma dependência em tomcat7 . Infelizmente, este pacote não está presente no Debian squeeze, que é enviado apenas com o pacote tomcat6 .

A próxima versão do Debian 7 (Wheezy) vem com Tomcat 6 e 7 . Isso significa que eu posso pegar o pacote fonte do Wheezy, reconstruí-lo para o Squeeze e colocá-lo em nosso repositório customizado juntamente com as compilações do nosso próprio software? Ou será que isso provavelmente resultará em conflitos nos sistemas do Squeeze de alguma forma?

Há instruções em vários lugares como backport tomcat , no entanto o que me preocupa é que o Tomcat 7 não faz parte do projeto oficial de backports do Debian 6. Eu não quero estragar os sistemas de qualquer um dos nossos usuários. Por exemplo, se eles tentarem instalar nosso software em um sistema que já tenha tomcat6 instalado, o que eu acho que está em conflito com tomcat7 . Nesse caso, deve resolver isso graciosamente da mesma maneira que aconteceria no Wheezy ou no Ubuntu.

    
por Jeroen 26.02.2013 / 01:14

1 resposta

1

No link que você mostra, o backport do Tomcat7 parece fácil, de fato. E se tudo funcionar bem, você deve acabar com um pacote tomcat7 que atenda às suas necessidades. Mas ...

Pode ter funcionado um ano atrás (quando o post do blog apareceu), mas agora acho que há um problema. Na verdade, a etapa apt-get build-dep tomcat6 é um pouco complicada. O que realmente deve ser feito é apt-get build-dep tomcat7 . Depois de tentar fazer isso, você verá que o trabalho é um pouco mais tedioso. Alguns outros pacotes aparecerão como dependências de compilação e você precisará instalá-los, se estiverem disponíveis, ou compilá-los a partir de fontes, se não.

Processo de compilação

Em minhas avaliações, descobri que para poder criar tomcat7 para seus usuários, você precisa:

  • ative o squeeze-backports e instale a partir dele maven-repo-helper e javahelper ,
  • construa a partir de fontes wheezy jakarta-taglibs-standard e instale-o em sua máquina de construção.

No final, todo o procedimento como eu fiz parecia (números de versão fornecidos a partir de 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

Peculiaridade do pacote fonte do tomcat7 7.0.28

As instruções listadas acima devem ser tudo o que é necessário. No entanto, há um certificado expirado no pacote tomcat7 7.0.28-4 source no repositório Wheezy / testing (um certificado autoassinado expirou em 27 de fevereiro de 2013). Isso fará com que a compilação falhe nos testes de unidade.

Existem 2 soluções para resolver isso:

  • altere a data em sua máquina de construção para estar antes de 27 de fevereiro de 2013,
  • desabilite o teste de unidade para sua compilação, isso pode ser feito no arquivo build.properties.default , você precisará alterar as 3 propriedades:

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

Instalação

Como você viu no seu link, você virá com alguns pacotes tomcat7-... que você precisará fornecer para seus usuários. O melhor seria através do seu próprio repositório, para que possam instalar tudo isso facilmente.

Com todos esses pacotes, tudo deve estar ok e seus usuários terão um backport do Tomcat 7 para o Squeeze. Se os seus usuários migrarem para o Wheezy, eles não deverão ter problemas, pois qualquer novo pacote do Tomcat 7 no Wheezy terá um número de versão maior do que aquele que você forneceu. Eles receberão os upgrades Wheezy muito bem.

Manutenção

Uma última coisa que você precisa considerar é a segurança do Tomcat 7 ou correções de bugs que aparecerão no Wheezy mais tarde. Se uma tomcat7 atualização séria aparecer no Wheezy, você deve considerar a possibilidade de reconstruir seus próprios tomcat7 pacotes e fornecer essas mesmas atualizações para seus usuários.

    
por 06.03.2013 / 20:29