How to Override the rpm.versions System


Overview

This document explains the files in the /var/cpanel/rpm.versions.d/ directory, which system administrators and third-party developers can use to modify cPanel-provided RPM management.

Note:
  • All of the rpm.versions system’s .versions files are stored in
    the YAML format.
  • Because YAML is space-sensitive, misspelled words are common when system administrators edit a file manually. For this reason, we encourage system administrators to use the /scripts/update_local_rpm_versions script to edit the /var/cpanel/rpm.versions.d/local.versions file. For more information, read our The update_local_rpm_versions Script documentation.

Files

The /usr/local/cpanel/etc/rpm.versions file contains cPanel-provided settings for the rpm.versions system, based on the version of cPanel & WHM that your server runs. However, the rpm.versions system allows any .versions files in the /var/cpanel/rpm.versions.d directory to override these settings.

The following table lists information about the files from which the rpm.versions system retrieves information:

Source of changes Location Description
cPanel, L.L.C. /usr/local/cpanel/etc/rpm.versions cPanel, L.L.C. provides these settings based on the version of cPanel & WHM that your server runs. You should never directly edit this file, because you will lose your changes when you perform an upgrade.
Third-party developers /var/cpanel/rpm.versions.d/*.versions We encourage third-party developers who wish to override the /usr/local/cpanel/etc/rpm.versions file to create their own *.versions files in the /var/cpanel/rpm.versions.d/ directory. These settings override the cPanel-provided settings. If multiple *.versions files on a server list an RPM target, conflicts may occur. For more information, read the Third-party conflicts section below.
System administrators /var/cpanel/rpm.versions.d/local.versions These settings override all other settings.

Third-party conflicts

If a conflict exists between two or more third-party files in the /var/cpanel/rpm.versions.d/ directory, no RPM updates will take place.

A conflict can occur if two vendors modify the same setting in a file. You can resolve a conflict in either of the following ways:

  1. If the /var/cpanel/rpm.versions.d/local.versions file contains a modification to the same setting that caused the conflict between the vendor files, the setting that the /var/cpanel/rpm.versions.d/local.versions file specifies will override the conflict.
  2. The vendors can resolve the conflict through changes to their respective files in the /var/cpanel/rpm.versions.d/ directory.

File format

The files in the /var/cpanel/rpm.versions.d/ directory use the YAML format, and follow a structure that resembles the /usr/local/cpanel/etc/rpm.versions file. However, these files should only contain the values that you wish to specifically override in the rpm.versions system.

More:

For more information about this file format, read our The rpm.versions File documentation.

A file in the /var/cpanel/rpm.versions.d/ directory that overrides only one RPM target will appear similar to the following example:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
file_format:
  version: 2
install_targets: {}

rpm_groups: {}

deferred_settings: {}

deferred_optional: {}

rpm_locations: {}

srpm_sub_packages: {}

srpm_versions: {}
target_settings:
  pure-ftpd: unmanaged
url_templates: {}