title: The rpm.versions File created at: Thu Oct 31 2024 11:31:38 GMT+0000 (Coordinated Universal Time) updated at: Sat Feb 08 2025 14:22:25 GMT+0000 (Coordinated Universal Time) --- # The rpm.versions File # 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](https://yaml.org/) 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: ```bash 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: ```javascript 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: ```bash 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: ```javascript 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: ```bash 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: ```javascript 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 `cpanel-ng-whm-initial-setup-wizard` target appears similar to the following example: ```javascript cpanel-ng-whm-initial-setup-wizard: 118.16.16-1.cp11118 ``` This example uses the following variables: * The WHM version is `118.16.16`. * The revision number is `1`. * The version of cPanel & WHM is version 118. # 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](https://docs.cpanel.net/knowledge-base/rpm-versions/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 118 demonstrates this section of the file: ```bash redhat6: - cpanel-perl-536-linux-systemd redhat8: - cpanel-perl-536-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](http://httpupdate.cpanel.net/RPM/) . Each URL template appears in one of the following formats: ```bash 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.