The original package manager, Yellowdog UPdater was developed in 1999-2001 by Dan Burcaw, Bryan Stillwell, Stephen Edie, and Troy Bengegerdes at Terra Soft Solutions as a back-end engine for a graphical installer of Yellow Dog Linux.. As a full rewrite of YUP, YUM evolved primarily to update and manage Red Hat Linux systems used at the Duke University Department of Physics by Seth Vidal and Michael Stenner. Vidal continued to contribute to YUM until his death in a Durham, North Carolinabicycle accident on 8 July 2013. In 2003 Robert G. Brown at Duke published documentation for YUM. Subsequent adopters included Fedora, CentOS, and many other RPM-based Linux distributions, including Yellow DogLinux itself, where YUM replaced the original YUP utility — last updated on SourceForge in 2001. By 2005, it was estimated to be in use on over half of the Linux market, and by 2007 YUM was considered the "tool of choice" for RPM-based Linux distributions. YUM aimed to address both the perceived deficiencies in the old APT-RPM, and restrictions of the Red Hat up2date package management tool. YUM superseded up2date in Red Hat Enterprise Linux 5 and later. Some authors refer to YUM as the Yellowdog Update Manager, or suggest that "Your Update Manager" would be more appropriate. A basic knowledge of YUM is often included as a requirement for Linux system-administrator certification. The GNU General Public License of YUM allows the free and open-source software to be freely distributed and modified without any royalty, if other terms of the license are honored.
Operations
YUM can perform operations such as:
installing packages
deleting packages
updating existing installed packages
listing available packages
listing installed packages
Extensions
The 2.x versions of YUM feature an additional interface for programming extensions in Python that allows the behavior of YUM to be altered. Certain plug-ins are installed by default. A commonly installed package yum-utils, contains commands which use the YUM API, and many plugins. Graphical user interfaces, known as "front-ends", allow easier use of YUM. PackageKit and Yum Extender are two examples.
Metadata
Information about packages is known as metadata. These metadata are combined with information in each package to determine dependencies among the packages. The hope is to avoid a situation known as dependency hell. A separate tool, createrepo, sets up YUM software repositories, generating the necessary metadata in a standard XML format. The mrepo tool can help in the creation and maintenance of repositories. YUM's XML repository, built with input from many other developers, quickly became the standard for RPM-based repositories. Besides the distributions that use YUM directly, SUSE Linux 10.1 added support for YUM repositories in YaST, and the Open Build Service repositories use the YUM XML repository format metadata. YUM automatically synchronizes the remote meta data to the local client, with other tools opting to synchronize only when requested by the user. Having automatic synchronization means that YUM cannot fail due to the user failing to run a command at the correct interval.