嘗試安裝 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 Wiki LSBInitScripts

相關內容