A software repository makes software available to the system. It does so in two parts:
- metadata – table of contents of the repository
openSuse supports two types of repositories:
- YAST: used in CD/DVD like installation media
- Repomd (YUM): rpm XML metadata repository format is a standardized, widely-used format for online packages repositories
plaindir is a directory containing RPM packages
rpm XML metadata
- Originated from YUM
- Also known as rpm md
- Mostly used for online repositories
- Easy to generate
- Multiple architectures are supported
- Source rpms are not supported
rpm metadata : describes critical metadata from a rpm package for dependency resolving and installation.
repomd.xml – describes the other metadata files. It is an index file to point to the other files. It contains timestamps and checksums for the other files.
primary.xml.gz – stores the primary metadata information. This includes information such as: name, epoch, version, release, architecture file size, file location, description, summary, format, checksums header byte-ranges, etc. dependencies.
filelists.xml.gz – stores the complete file and directory listings for the packages. The package is identified by: name, epoch, version, release, architecture and package checksum id.
other.xml.gz – stores the changelog data from packages.
groups.xml.gz – is for a common package-groups specification.
Repository is represented in XML (gzipped) in a sub-directory
| |______ repodata
| | |___ filelists.xml.gz
| | |___ other.xml.gz
| | |___ primary.xml.gz
| | |___ repomd.xml
| |______ *.rpm
A rpm md repository can be easily created using createrepo. It is a python program that creates rpm XML Metadata format from a set of rpms.
will create a repodata folder which will have the above explained files.
- It is stored in /etc/zypp/repos.d/
- It describes the repository