Troubleshoot offline RPM installation

Resolve common errors when installing Red Hat Edge Manager RPMs from an offline repository on a management server or edge device.

Missing dependency errors during dnf install

The offline tree is incomplete or was built on a prep machine that does not match the target Red Hat Enterprise Linux version.

  1. Confirm repodata/ exists under your baseurl path. If metadata is missing after Option B, run createrepo_c on the prep host again. See Preparing offline RPMs with subscription repositories.
  2. Re-run dnf reposync (Option A) or dnf download --resolve --alldeps (Option B) on a prep host that matches the target, then transfer the updated tree.
  3. Confirm flightctl-agent, flightctl-cli, and flightctl-selinux RPMs are in the tree:
    find /var/rhem-offline-rpms -name 'flightctl-*.rpm' | grep -E 'agent|cli|selinux'

install-rpms.sh fails with dependency or version conflict

When the bundle was built on a newer Red Hat Enterprise Linux minor version than the target, system packages such as librepo can conflict. The install-rpms.sh script in the bundle passes --nobest to dnf to handle most cases. If installation still fails, rebuild the bundle on a prep host that matches the target Red Hat Enterprise Linux major and minor version. See Pinning bundle contents to a release version.

Quadlet service fails with manifest unknown or image not found

  1. Verify the image is in the local registry:
    curl http://localhost:5000/v2/_catalog
    curl http://localhost:5000/v2/<image-path>/tags/list
  2. Confirm /etc/containers/registries.conf redirects the image’s upstream registry prefix to your local registry. See Configuring registry redirection for disconnected installs.
  3. Confirm the image tag in the local registry matches what the quadlet unit references. Rebuild the bundle with --tag-override set to the RPM version you installed.

SELinux denials after installing the agent

  1. Verify the policy package and module:
    rpm -q flightctl-selinux
    semodule -l | grep flightctl
    ls -Z /usr/bin/flightctl-agent
  2. If the module is missing, reinstall from the offline repository:
    sudo dnf reinstall -y --disablerepo='*' --enablerepo=rhem-offline flightctl-agent

Service fails to start after installation

  1. Review logs for the failed unit (flightctl-agent or flightctl.target):
    sudo journalctl -u <unit> -b --no-pager
  2. For the management server, confirm container images are in the local registry and registries.conf is configured. See Configuring registry redirection for disconnected installs.
  3. For the agent, confirm enrollment configuration before you expect API connectivity. See Enrolling devices.