How to Override the rpm.versions System

Last modified: February 22, 2024


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 package 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
WebPros International, LLC /usr/local/cpanel/etc/rpm.versions WebPros International, LLC 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 a package 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 package 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 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: {}

Additional Documentation