![“涉及服务的循环”:apt-get install 破坏了 dpkg](https://linux22.com/image/1136128/%E2%80%9C%E6%B6%89%E5%8F%8A%E6%9C%8D%E5%8A%A1%E7%9A%84%E5%BE%AA%E7%8E%AF%E2%80%9D%EF%BC%9Aapt-get%20install%20%E7%A0%B4%E5%9D%8F%E4%BA%86%20dpkg.png)
一个 apt-get 安装出错,现在每个 apt 命令都失败。
强制转储sudo apt-get install apache2
Reading package lists... Done
Building dependency tree
Reading state information... Done
**apache2 is already the newest version.**
0 upgraded, 0 newly installed, 0 to remove and 17 not upgraded.
**1 not fully installed or removed.**
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n]
现在,当我回答“Y”时:
Setting up apache2 (2.4.12-2ubuntu2) ...
insserv: warning: script 'S99logd_pub_sub' missing LSB tags and overrides
insserv: warning: script 'logd_pub_sub' missing LSB tags and overrides
insserv: There is a loop between service rc.local and procps if started
insserv: loop involving service procps at depth 2
insserv: loop involving service udev at depth 1
insserv: Starting logd_pub_sub depends on rc.local and therefore on system facility `$all' which can not be true!
~snip 99 iterations~
insserv: Max recursions depth 99 reached
insserv: Starting logd_pub_sub depends on rc.local and therefore on system facility `$all' which can not be true!
insserv: There is a loop at service rc.local if started
insserv: Starting logd_pub_sub depends on rc.local and therefore on system facility `$all' which can not be true!
~snip 10 or so iterations~
insserv: loop involving service networking at depth 4
insserv: There is a loop between service rc.local and urandom if started
insserv: loop involving service urandom at depth 4
insserv: loop involving service hwclock at depth 3
insserv: There is a loop between service logd_pub_sub and mountkernfs if started
insserv: loop involving service mountkernfs at depth 1
insserv: Starting logd_pub_sub depends on rc.local and therefore on system facility `$all' which can not be true!
~snip~
insserv: Starting logd_pub_sub depends on rc.local and therefore on system facility `$all' which can not be true!
insserv: There is a loop between service logd_pub_sub and dns-clean if started
insserv: loop involving service dns-clean at depth 1
insserv: Starting logd_pub_sub depends on rc.local and therefore on system facility `$all' which can not be true!
insserv: Starting logd_pub_sub depends on rc.local 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 package apache2 (--configure):
subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
apache2
E: Sub-process /usr/bin/dpkg returned an error code (1)
该机器运行的是 Ubuntu 15.10
答案1
事实证明,问题出在有一个不相关的脚本/etc/init.d
破坏了 dpkg。解决方法是删除有问题的脚本。一般情况下,在尝试运行 apt 之前,请检查所有 init.d 脚本并确保它们确实运行。