我正在为我们的软件创建.deb
安装包,它依赖于tomcat7
。不幸的是,这个包并不存在于Debian中,它只随包tomcat6
一起提供。
即将发布的Debian7 (Wheezy)发布了Tomcat 6和7。这是否意味着我可以从Wheezy获取源代码包,重新构建它以进行压缩,并将其与我们自己软件的构建一起放在我们的自定义存储库中?或者这可能会在某种程度上导致挤压系统上的冲突?
有几个地方的说明如何支持猫,然而,令我担心的是,Tomcat 7不是官方Debian6支持项目的一部分。我不想搞砸我们任何用户的系统。例如,如果他们试图在已经安装了tomcat6
的系统上安装我们的软件,我认为这与tomcat7
冲突。在这种情况下,它应该以与Wheezy或Ubuntu相同的方式优雅地解决这个问题。
发布于 2013-03-06 19:29:15
从您显示的链接来看,Tomcat7的后端似乎非常简单。如果一切运行良好,您应该最终得到一个满足您的需求的tomcat7包。但是..。
它可能在一年前起作用(当博客文章出现时),但现在我认为有一个陷阱。实际上,apt-get build-dep tomcat6
这一步有点棘手。真正应该做的是apt-get build-dep tomcat7
。一旦你尝试这样做,你就会发现这项工作有点乏味。其他一些软件包将作为构建依赖项出现,如果它们可用,您将需要安装它们,如果没有,则需要从源代码中构建它们。
从我的试验中,我发现要能够为用户构建tomcat7
,您需要:
maven-repo-helper
和javahelper
,jakarta-taglibs-standard
并将其安装在您的生成机器上。最后,正如我所做的那样,整个过程(截至2013年6月3日提供的版本号):
# 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
的特点
上面列出的说明应该是所需的。但是,Wheezy/测试存储库中的tomcat7 7.0.28-4
源代码包中有一个过期的证书(自签名的证书在2013年2月27日到期)。这将使构建在单元测试中失败。
解决这一问题的办法有两种:
build.properties.default
文件中完成,您需要更改3个属性:execute.test.bio=false
execute.test.nio=false
execute.test.apr=false
正如您在链接中所看到的,您将附带一些需要为用户提供的tomcat7-...
包。最好是通过您自己的存储库,这样他们就可以轻松地安装所有这些了。
有了所有这些包,一切都应该是好的,您的用户实际上将有一个支持Tomcat 7的挤压。如果您的用户随后迁移到Wheezy,他们应该没有问题,因为Wheezy中的任何新Tomcat 7包的版本号都比您提供的版本要大。他们会得到Wheezy升级很好。
您需要考虑的最后一件事是Tomcat 7的安全性或bug修复,稍后将进入Wheezy。如果Wheezy中弹出了一个严肃的tomcat7
更新,那么您应该考虑重新构建自己的tomcat7
包,并向用户提供相同的更新。
https://serverfault.com/questions/482443
复制相似问题