无法在 WSL 上安装 Gitlab:Initctl 错误

无法在 WSL 上安装 Gitlab:Initctl 错误

最近,我尝试在我的 WSL 系统上安装 Gitlab Enterprise Edition,因为我目前缺少适当的开发环境。

安装本身进行得相当顺利,但我无法配置 Gitlab(gitlab-ctl reconfigure),因为它返回此错误:

  * service[create a temporary mailroom service] action nothing (skipped due to action :nothing)
Recipe: runit::upstart
  * cookbook_file[/etc/init/gitlab-runsvdir.conf] action create (up to date)
  * execute[initctl reload-configuration] action run
    [execute] initctl: Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart: Connection refused

    ================================================================================
    Error executing action `run` on resource 'execute[initctl reload-configuration]'
    ================================================================================

    Mixlib::ShellOut::ShellCommandFailed
    ------------------------------------
    Expected process to exit with [0], but received '1'
    ---- Begin output of initctl reload-configuration ----
    STDOUT:
    STDERR: initctl: Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart: Connection refused
    ---- End output of initctl reload-configuration ----
    Ran initctl reload-configuration returned 1

尝试强制initctl返回 true(使用ln)会导致比它解决的问题更多的问题,所以这真的不是一个选择。

我能做些什么来让 Gitlab 正常工作?

答案1

恐怕我没有什么好消息要告诉你。看来 WSL 仍然无法与在启动机器时启动作业的东西兼容upstartinitctlGithub

引用 转向从该问题开始

WSL 不使用 Upstart 在系统启动时启动进程。如果您与 Upstart 密切合作,这可能会让您感到有些惊讶;该消息对于直接使用 initctl、upstart 等的人来说很有用,因为 WSL 尚未公开该功能。

此外,他指出,WSL 实际上是测试版尚未发布,这种错误并不意外。

WSL 在此版本中是测试版软件。最近,一些公司发布了真正可用于生产的“测试版”软件。但 WSL 实际上是传统的测试版软件:它做对了许多事情;也有许多事情仍在进行中,因此尚未发挥作用。通常会看到这样的消息,或者遇到尚未完全发挥作用的工具等。

问题仍未解决。我的建议是去该问题上评论你的问题,这样他们就能尽快修复该问题。

答案2

我能做些什么来让 Gitlab 正常工作?

是的。完全忘掉 upstart。您正在使用 upstart 来运行 runit,而 runit 又负责监督 gitlab 服务。在适用于 Linux 的 Windows 子系统中,Upstart 是完全不必要的部分。

让 runit 本身在适用于 Linux 的 Windows 子系统上运行。(您可能需要对其进行调整,因为即使在 Ubuntu Linux 上它也存在已知的软件包问题。)然后直接使用它来管理您的 gitlab 服务。

进一步阅读

相关内容