Adding a New Repository
On Photon OS, you can add a new repository from which
tdnf installs packages. To add a new repository, you create a repository configuration file with a
.repo extension and place it in
/etc/yum.repos.d. The repository can be on either the Internet or a local server containing your in-house applications.
Be careful if you add a repository that is on the Internet. Installing packages from untrusted or unverified sources might put the security, stability, or compatibility of your system at risk. It might also make your system harder to maintain.
On Photon OS, the existing repositories appear in the
ls /etc/yum.repos.d/ lightwave.repo photon-extras.repo photon-iso.repo photon-updates.repo photon.repo
To view the the format and information that a new repository configuration file should contain, see one of the
.repo files. The following is an example:
cat /etc/yum.repos.d/lightwave.repo [lightwave] name=VMware Lightwave 1.0(x86_64) baseurl=https://packages.vmware.com/photon/1.0/lightwave gpgkey=file:///etc/pki/rpm-gpg/VMWARE-RPM-GPG-KEY gpgcheck=1 enabled=1 skip_if_unavailable=True
The minimal information needed to establish a repository is an ID and human-readable name of the repository and its base URL. The ID, which appears in square brackets, must be one word that is unique amoung the system’s repositories; in the example above, it is
baseurl is a URL for the repository’s repodata directory. For a repository on a local server that can be accessed directly or mounted as a file system, the base URL can be a file referenced by
gpgcheck setting specifies whether to check the GPG signature. The
gpgkey setting furnishes the URL for the repository’s ASCII-armored GPG key file. Tdnf uses the GPG key to verify a package if its key has not been imported into the RPM database.
enabled setting tells
tdnf whether to poll the repository. If
enabled is set to
tdnf polls it; if it is set to
tdnf ignores it.
skip_if_unavailable setting instructs
tdnf to continue running if the repository goes offline.
You can use the skip metadata download settings to skip the download of metadata files for repositories with a lot of packages. When you skip the download of the metadata files, it improves the download time of the packages and the processing time of refreshing the cache.
The following list describes the skip metadata settings:
skip_md_filelists=1setting deactivates the download of the complete list of files in all packages. The default value is
skip_md_updateinfo=1setting deactivates the download of the update info data. The setting improves the download and processing time but affects the output of the
updateinfocommand. The default value is
Other options and variables can appear in the repository file. The variables that are used with some of the options can reduce future changes to the repository configuration files. There are variables to replace the value of the version of the package and to replace the base architecture. For more information, see the man page for
yum.conf on the full version of Photon OS:
The following is an example of how to add a new repository for a local server that
tdnf polls for packages:
cat > /etc/yum.repos.d/apps.repo << "EOF" [localapps] name=Local In-House Applications(x86_64) baseurl=file:///appserver/apps enabled=1 skip_if_unavailable=True EOF
Because this new repository resides on a local server, make sure the Photon OS machine can connect to it by mounting it.
After establishing a new repository, you must run the following command to update the cached binary metadata for the repositories that
tdnf makecache Refreshing metadata for: 'VMware Lightwave 1.0(x86_64)' Refreshing metadata for: 'VMware Photon Linux 1.0(x86_64)Updates' Refreshing metadata for: 'VMware Photon Extras 1.0(x86_64)' Refreshing metadata for: 'Local In-House Applications(x86_64)' Refreshing metadata for: 'VMware Photon Linux 1.0(x86_64)' Metadata cache created.