为什么 upstart/systemd 和 runit 会出现这个错误?

为什么 upstart/systemd 和 runit 会出现这个错误?

sudo apt-get install git-all在Ubuntu 16.04中运行,最后看到以下内容

Setting up runit (2.1.2-3ubuntu1) ...
start: Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart: Connection refused
dpkg: error processing package runit (--configure):
 subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of git-daemon-run:
 git-daemon-run depends on runit; however:
  Package runit is not configured yet.

dpkg: error processing package git-daemon-run (--configure):
 dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup error from a previous failure.
                      Errors were encountered while processing:
 runit
 git-daemon-run
E: Sub-process /usr/bin/dpkg returned an error code (1)

重新启动系统后我也收到此错误。它确实阻塞了我的整个系统。我跑killall update-notifier。我运行sudo apt-get install git-all但收到相同的错误消息。我运行pgrep -a apt但没有得到任何输出。我运行pgrep -a update但没有得到任何输出。有关该案例的错误报告这里

  • 在 Grub 中,选择高级选项>Ubuntu(新贵)Linux 内核 4.22。仅在终端中执行相同操作,无需系统导致同样的错误。

为什么 runit 会出现这个错误?

答案1

格里特·佩普为 Debian 维护 xyr 自己的 runit 和 Bernstein 的 daemontools 软件包,他是为数不多的真正将“init-system中立性”理念(在 Debian systemd 之后广为流传)的开发人员之一。努力支持在 van Smoorenburg init、 upstart 和 systemd 下运行这些。

您会发现 runit 的安装后维护程序脚本从软件包中的某个位置解压到您的系统上,例如/var/lib/dpkg/info/runit.postinst.正如您所看到的,它会尝试检测 upstart 的存在,并runsvdir在存在 upstart 的情况下启动 upstart 作业。它对 systemd 和 执行相同的操作runit.service

不幸的是,在 Ubuntu 14 及更高版本上两个都系统暴发户已安装。因此,该包的安装后维护者脚本尝试使用 upstart 的start命令运行 upstart 作业。当然,upstart 并不是(默认情况下)Ubuntu 15 及更高版本中系统范围的服务管理器,并且 upstart 的start命令无法工作。

以下是如何修补脚本以克服此问题的粗略想法:

……
如果测试 -r /usr/share/debconf/confmodule;然后
  。 /usr/share/debconf/confmodule
  数据库清除

如果测试 -d /run/systemd/system ;然后
  systemctl 启动 runit.service
elif 测试 -x /sbin/start ;然后
  /sbin/start 运行vdir

这并不理想,但这是一个开始。 runit.prerm同样runit.postrm需要一些调整。

进一步阅读

答案2

我设法找到了解决问题的临时方法。将源服务器等的位置从主服务器更改为芬兰或爱沙尼亚。它暂时解决了这个严重的问题。

相关内容