The rpm.versions File


Last modified: February 20, 2024

Overview

The /usr/local/cpanel/etc/rpm.versions file contains all of the cPanel-provided settings for the rpm.versions system. We provide these settings based on the version of cPanel & WHM that your server runs. Your server automatically updates this file whenever cPanel & WHM updates.

The system stores the /usr/local/cpanel/etc/rpm.versions file in YAML format. The sections below describe each of the file’s headers and their contents.

Warning:

We strongly recommend that you never directly edit this file, because you will lose your changes when you perform an upgrade. Instead, use the /var/cpanel/rpm.versions.d/local.versions file to make changes.

install_targets — Target components and dependencies

The install_targets section of the /usr/local/cpanel/etc/rpm.versions file lists each target with its component packages and dependencies.

Each target entry displays information in the following format:

1
2
3
4
5
6
7
package_target:
    components:
      - component_package_1
      - component_package_2
    dependencies:
      - dependency_1
      - dependency_2

This example uses the following variables:

  • package_target is the name of the target.
  • component_package_1 and component_package_2 are packages that are necessary for the package_target service to function properly.
  • dependency_1 and dependency_2 are additional packages on which the component packages are dependent.
Note:

Instead of individual packages, the components and dependencies sections may also list the names of package groups, as the rpm_groups section of the /usr/local/cpanel/etc/rpm.versions file defines.

obsolete — Obsolete packages

The obsolete section of the /usr/local/cpanel/etc/rpm.versions file lists packages that your version of cPanel & WHM no longer supports. If the package system detects any packages on this list, it will remove them from the system.

Each obsolete package entry appears in the following format:

compat-MySQL50-shared: 1

This example uses the following variables:

  • compat-MySQL50-shared is the package’s name.
  • 1 is a Boolean value that will always equal 1.

rpm_groups — Package groups

The rpm_groups section of the /usr/local/cpanel/etc/rpm.versions file lists groups of packages under their assigned group name. In the other sections of the file, this group name represents that list of packages, which eliminates the need for repetitive lists of frequently-used package names.

Each group entry appears in the following format:

1
2
3
groupname:
    - grouped_package_1
    - grouped_package_2

This example uses the following variables:

  • groupname is the name of the package group.
  • grouped_package_1 and grouped_package_2 are the names of individual packages that are part of the group.

rpm_locations — Package file locations

The rpm_locations section of the /usr/local/cpanel/etc/rpm.versions file specifies which URL template the rpm.versions system uses to find that target’s packages.

Each file location entry appears in the following format:

package: template

This example uses the following variables:

  • package is the package’s name.
  • template is the name of the URL template, as the file’s url_templates section specifies.

srpm_sub_packages — Source package information

The srpm_sub_packages section of the /usr/local/cpanel/etc/rpm.versions file specifies a list of source packages (formerly known as source RPMs, or SRPMs) for each package target.

Each source package entry appears in the following format:

1
2
3
4
package_target:
    - srpm1
    - srpm2
    - srpm3

This example uses the following variables:

  • package_target is the package target’s name.
  • srpm1, srpm2, and srpm3 are the names of the target’s source packages.

srpm_versions — Source package versions

The srpm_versions section of the /usr/local/cpanel/etc/rpm.versions file specifies the exact version number for each package target.

Each source package version entry appears in the following format:

package_target: version-revision.distribution

This example uses the following variables:

  • package_target is the package target’s name.
  • version is the exact version number.
  • revision is the package’s revision number.
  • distribution corresponds to the major version of cPanel & WHM with which we released this version.

For example, the source package version for the MySQL56 target appears similar to the following example:

MySQL56: 5.6.51-1.cp1186

This example uses the following variables:

  • The MySQL® version is 5.6.51.
  • The revision number is 1.
  • The version of cPanel & WHM is version 86.

target_settings — Target installation settings

The target_settings section of the /usr/local/cpanel/etc/rpm.version file specifies each package target’s default installation status.

For more information about package targets, read our Target Settings documentation.

unsupported_rpms - Unsupported packages

The unsupported_rpms section of the /usr/local/cpanel/etc/rpm.versions file specifies packages that an operating system will not install.

The following example from cPanel & WHM version 94 demonstrates this section of the file:

1
2
3
4
redhat6:
  - cpanel-perl-532-Linux-Systemd
redhat8:
  - cpanel-perl-532-Authen-Libwrap

url_templates — URL templates

The url_templates section defines the template that the rpm.versions system uses to find specific package files. In the /usr/local/cpanel/etc/rpm.versions file, all of these templates point to locations on cPanel’s httpupdate server.

Each URL template appears in one of the following formats:

1
2
3
4
5
6
deb_default: 'http://[% httpupdate %]/ubuntu/pool/[% source_package %]/[% package %]_[% package_version %]-[% package_revision %]_amd64.deb'
deb_default-noarch: 'http://[% httpupdate %]/ubuntu/pool/[% source_package %]/[% package %]_[% package_version %]-[% package_revision %]_all.deb'
deb_ng: 'http://[% httpupdate %]/ubuntu/pool/[% source_package %]/[% package %]_[% package_version %]-[% package_revision %]_all.deb'
default: 'http://[% httpupdate %]/RPM/[% lowest_cpanel_version_supported %]/centos/[% dist_ver %]/[% arch %]/[% package %]-[% package_version %]-[% package_revision %].[% arch %].rpm'
default-noarch: 'http://[% httpupdate %]/RPM/[% lowest_cpanel_version_supported %]/centos/[% dist_ver %]/[% arch %]/[% package %]-[% package_version %]-[% package_revision %].noarch.rpm'
ng: 'http://[% httpupdate %]/RPM/ng/noarch/[% package %]-[% package_version %]-[% package_revision %].noarch.rpm'

This example uses the following variables:

  • deb_default, deb_default-noarch and deb_ng are the names of package file location templates readable by Debian systems.
  • default, default-noarch, and ng are the names of the RPM file location templates readable by Red-Hat® systems.
  • httpupdate is the hostname at which to download the packages.
  • source_package is the source package name.
  • version is the cPanel & WHM major version that first contained that package target.
  • rpm_dist is the name of the Red-Hat system’s OS distribution (for example, centos).
  • rpm_dist_ver is the Red-Hat system’s OS distribution’s version number (for example, 5).
  • rpm_arch is the Red-Hat system’s OS architecture (for example, i686).
  • package is the package’s name.
  • package_version is the package’s version number.
  • package_revision is the package’s revision number.

The presence or absence of default-noarch in the package’s location indicates differences in the package template, which changes how the rpm.versions system generates information, such as package filenames, for that package.

Additional Documentation