最近,我尝试在我的 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 仍然无法与在启动机器时启动作业的东西兼容upstart
。initctl
在Github。
引用 转向从该问题开始
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 服务。