最近,我尝试在我的 WSL 系统上安装 Gitlab 企业版,因为我目前缺乏合适的开发环境。
安装本身进行得相当顺利,但我无法配置 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 正常工作吗?
我担心,我没有任何好消息要告诉你。似乎 WSL 仍然不适用于在启动机器时启动作业的东西
upstart
。Githubinitctl
上报告了一个类似的问题。引用 那个问题
此外,他指出 WSL 还真的是一个beta版本,出现这种错误并不意外。
这个问题仍然悬而未决。我的建议是去评论关于你的问题的那个问题,以便他们尽快解决这个问题。
是的。完全忘记暴发户。您正在使用 upstart 来运行 runit,而这又是监督 gitlab 服务的东西。在适用于 Linux 的 Windows 子系统上,Upstart 是完全不必要的部分。
让 runit 本身在适用于 Linux 的 Windows 子系统上运行。(你可能需要调整它,因为它甚至在 Ubuntu Linux 上也存在包问题。)然后直接使用它来管理你的 gitlab 服务。
进一步阅读