尝试安装 tomcat 后,insserv 在 apt-get 操作上出现大量错误

尝试安装 tomcat 后,insserv 在 apt-get 操作上出现大量错误

我想在我的 Debian 6.0.4 机器上安装 tomcat。我试过了,apt-get install tomcat6-user一切正常。但后来我改变了主意,不想再使用用户安装,想安装 tomcat6 包。这导致了一堆错误(见下文)。

现在,无论我尝试使用 apt-get 或 aptitude 做什么(尝试删除 tomcat6-user、尝试删除 tomcat6、尝试执行 apt-get 升级,...)都只会导致相同的错误列表。

我是怎么做到的?我该如何解决这个问题?

# apt-get install tomcat6
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  authbind
Suggested packages:
  tomcat6-docs tomcat6-admin tomcat6-examples libtcnative-1
The following NEW packages will be installed:
  authbind tomcat6
0 upgraded, 2 newly installed, 0 to remove and 32 not upgraded.
Need to get 56.6 kB of archives.
After this operation, 442 kB of additional disk space will be used.
Do you want to continue [Y/n]? 
Get:1 http://mirror.hetzner.de/debian/packages/ squeeze/main authbind amd64 1.2.0 [17.3 kB]
Get:2 http://mirror.hetzner.de/debian/security/ squeeze/updates/main tomcat6 all 6.0.35-1+squeeze2 [39.3 kB]
Fetched 56.6 kB in 0s (441 kB/s)
Preconfiguring packages ...
Selecting previously deselected package authbind.
(Reading database ... 34717 files and directories currently installed.)
Unpacking authbind (from .../authbind_1.2.0_amd64.deb) ...
Selecting previously deselected package tomcat6.
Unpacking tomcat6 (from .../tomcat6_6.0.35-1+squeeze2_all.deb) ...
Processing triggers for man-db ...
Setting up authbind (1.2.0) ...
Setting up tomcat6 (6.0.35-1+squeeze2) ...

Creating config file /etc/default/tomcat6 with new version
Adding system user `tomcat6' (UID 108) ...
Adding new user `tomcat6' (UID 108) with group `tomcat6' ...
Not creating home directory `/usr/share/tomcat6'.
insserv: warning: script 'S99iptables-custom' missing LSB tags and overrides
insserv: warning: script 'iptables-custom' missing LSB tags and overrides
insserv: There is a loop at service iptables-custom if started
insserv: There is a loop between service rmnologin and mountnfs if started
insserv:  loop involving service mountnfs at depth 6
insserv:  loop involving service networking at depth 5
insserv:  loop involving service kbd at depth 9
insserv: There is a loop between service rmnologin and mountall-bootclean if started
insserv:  loop involving service mountall-bootclean at depth 5
insserv:  loop involving service mountall at depth 4
insserv: There is a loop between service iptables-custom and lvm2 if started
insserv:  loop involving service lvm2 at depth 2
insserv:  loop involving service udev at depth 1
insserv: There is a loop at service rmnologin if started
insserv: There is a loop between service iptables-custom and checkroot if started
insserv:  loop involving service checkroot at depth 2
insserv:  loop involving service keyboard-setup at depth 1
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Max recursions depth 99 reached
insserv:  loop involving service courier-imap-ssl at depth 1
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv:  loop involving service hwclockfirst at depth 2
insserv:  loop involving service mountoverflowtmp at depth 9
insserv:  loop involving service checkfs at depth 6
insserv:  loop involving service mdadm-raid at depth 4
insserv:  loop involving service hostname at depth 3
insserv: There is a loop between service iptables-custom and ifupdown-clean if started
insserv:  loop involving service ifupdown-clean at depth 5
insserv: There is a loop between service rmnologin and mountall if started
insserv: There is a loop between service iptables-custom and mountdevsubfs if started
insserv:  loop involving service mountdevsubfs at depth 1
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv:  loop involving service mtab at depth 6
insserv: There is a loop between service rmnologin and mountoverflowtmp if started
insserv: Starting iptables-custom depends on rmnologin and therefore on system facility `$all' which can not be true!
insserv: exiting now without changing boot order!
update-rc.d: error: insserv rejected the script header
dpkg: error processing tomcat6 (--configure):
 subprocess installed post-installation script returned error exit status 1
configured to not write apport reports
                                      Errors were encountered while processing:
 tomcat6
E: Sub-process /usr/bin/dpkg returned an error code (1)

答案1

好的,我明白了。我创建了自己的脚本 iptables-common,其中只包含一些静态 iptables 规则。删除该脚本解决了问题。虽然我很困惑,这以前从来都不是问题。可能是因为 tomcat 添加了 iptable 规则...

答案2

当您查看 /etc/init.d/ 中的其他脚本时,您可能会注意到它们以以下特定部分开头:

#!/bin/sh
### BEGIN INIT INFO
# Provides:
# Required-Start:    iptables
# Required-Stop:
# Default-Start:     S
# Default-Stop:
# Short-Description: Initialize iptables rules.
# Description:
### END INIT INFO

通过添加这样的部分,您在尝试安装 tomcat 时遇到的错误就不会再出现了。

了解更多信息:Debian 维基 LSBInitScripts

相关内容