![尝试安装 tomcat 后,insserv 在 apt-get 操作上出现大量错误](https://linux22.com/image/1313959/%E5%B0%9D%E8%AF%95%E5%AE%89%E8%A3%85%20tomcat%20%E5%90%8E%EF%BC%8Cinsserv%20%E5%9C%A8%20apt-get%20%E6%93%8D%E4%BD%9C%E4%B8%8A%E5%87%BA%E7%8E%B0%E5%A4%A7%E9%87%8F%E9%94%99%E8%AF%AF.png)
我想在我的 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