在 transactional server 角色下根系统是只读的,
而 GitLab 在首次安装并使用命令 gitlab-ctl reconfigure
配置时会需要:
- 修改只读目录
/usr/lib/systemd/system
以添加一系列 service - 启动一系列相关的 service 如
logrotate.service
如果直接运行 gitlab-ctl reconfigure
将会报以下错误
Recipe: package::runit_systemd
* directory[/usr/lib/systemd/system] action create
* Cannot create directory[/usr/lib/systemd/system] at /usr/lib/systemd/system due to insufficient permissions
============
Error executing action `create` on resource 'directory[/usr/lib/systemd/system]'
============
如果通过 transcational-update shell
进入读写的环境, 将会因为无法启动 service 卡在这一步
* ruby_block[wait for logrotate service socket] action run
此环境下也无法手动启动此服务
# systemctl start logrotate.service
Running in chroot, ignoring command 'start'
个人猜测可能是因为在配置期间既对目录进行写入, 也使用了 systemd 启动服务, 导致无法直接在 transcational 系统上安装.
大家有什么头绪吗?