无法连接到套接字 /com/ubuntu/upstart:连接被拒绝:处理时遇到错误:runit

无法连接到套接字 /com/ubuntu/upstart:连接被拒绝:处理时遇到错误:runit

我正在使用 Ubuntu 15.04。每当我尝试安装任何软件包时,标题中都会出现错误消息。我该如何摆脱这个烦人的错误消息?

:~$ uname -a
Linux LongerVision001 3.19.0-25-generic #26-Ubuntu SMP Fri Jul 24 21:17:31 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 15.04
Release:        15.04
Codename:       vivid
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 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 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
Errors were encountered while processing:
 runit
E: Sub-process /usr/bin/dpkg returned an error code (1)

答案1

我遇到了同样的错误。阅读错误消息,似乎runit安装脚本upstart在某一时刻需要,但我的系统(我怀疑你的系统也是如此)正在运行systemd。值得注意的是,我有另一台机器不是在安装过程中出现此错误;唯一的实质性区别是出错的机器是从 14.10 升级而来的,而“刚刚正常工作”的机器是全新安装的。

由于 Vivid 不是 LTS,我认为可以编辑安装后的 dpkg 文件以使其恢复正常。(此技巧也适用于 LTS 安装,但希望不会出现问题)。

当 dpkg 出现错误时

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
Processing triggers for ureadahead (0.100.0-19) ...
Errors were encountered while processing:
 runit
E: Sub-process /usr/bin/dpkg returned an error code (1)

它将使 runit 包处于半安装状态。您应该runit.postinst在 中找到一个文件/var/lib/dpkg/info/。此文件作为 runit 包的安装后详细信息的一部分执行(主要用于在安装后立即启动 runit,而不是等到下次系统启动)。错误是脚本似乎忘记了systemd/的独占性质upstart。由于您显然没有运行upstart,请注释掉相关行(目前,我的安装中是第 58 至 60 行)。

前:

if [ -x /sbin/start ]; then #provided by upstart
  /sbin/start runsvdir
fi

后:

#if [ -x /sbin/start ]; then #provided by upstart
#  /sbin/start runsvdir
#fi

当你保存了更改后,你可以告诉 apt 从上次停止的地方完成操作,然后就可以开始了:

$ sudo apt-get install -f

答案2

只要清除新贵,它无论如何都已经坏了。

UPD:runit 似乎与 ubuntu 上的 systemd 不兼容,重启后可能会出现意外,runit 会失败并提示它不是 pid 1:

- runit: fatal: must be run as process no 1.

因此,另一种方法是切换到 upstart:

sudo aptitude install upstart-sysv
sudo update-initramfs -u
sudo reboot

相关内容