GitLab Omnibus reconfigure fails on RHEL 10 due to semanage command not found
Summary
GitLab Omnibus reconfigure fails on RHEL 10 with semanage: command not found due to missing policycoreutils-python-utils dependency.
Environment
- OS: Red Hat Enterprise Linux 10.0
- GitLab Version: 18.6.0-ee
- Installation Method: GitLab Omnibus (RPM package)
- Configuration: Praefect PostgreSQL node
Steps to Reproduce
- Install RHEL 10 (minimal installation)
- Install GitLab Omnibus package on a node that installs PostgreSQL via the package
- Run
gitlab-ctl reconfigure
Expected Behavior
According to the troubleshooting documentation:
The runtime dependency policycoreutils-python has been added to the RPM package for RHEL based operating systems in order to ensure the semanage command is available.
The semanage command should be available after GitLab installation.
Actual Behavior
GitLab reconfigure fails with a significantly long error trace but the pertinent part is as follows:
bash[Set proper security context on ssh files for selinux] (gitlab::selinux line 88) had an error:
Mixlib::ShellOut::ShellCommandFailed: Expected process to exit with [0], but received '127'
---- Begin output of "bash" ----
STDERR: bash: line 1: semanage: command not found
Root Cause
The omnibus-gitlab package does not declare policycoreutils-python-utils as a runtime dependency for RHEL 10. The dependency is missing from config/projects/gitlab.rb:
https://gitlab.com/gitlab-org/omnibus-gitlab/-/blob/master/config/projects/gitlab.rb#L74
Workaround
dnf install policycoreutils-python-utils
gitlab-ctl reconfigure