“涉及服务的循环”:apt-get install打破dpkg

一个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] 

现在e然后,当我回答’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

原来问题是/etc/init.d中有一个不相关的脚本破坏了dpkg。 解决方法是删除有问题的脚本。 一般情况是检查所有init.d脚本并确保它们在尝试运行apt之前实际运行。