The Yellowdog Updater Modified (YUM) is a free and open-source command-line package-management utility for computers running the Linux operating system using the RPM Package Manager. Though YUM has a command-line interface, several other tools provide graphical user interfaces to YUM functionality.
YUM allows for automatic updates and package and dependency management on RPM-based distributions. Like the Advanced Package Tool (APT) from Debian, YUM works with software repositories (collections of packages), which can be accessed locally or over a network connection.
Under the hood, YUM depends on RPM, which is a packaging standard for digital distribution of software, which automatically uses hashes and digital signatures to verify the authorship and integrity of said software; unlike some app stores, which serve a similar function, neither YUM nor RPM provide built-in support for proprietary restrictions on copying of packages by end-users. YUM is implemented as libraries in the Python programming language, with a small set of programs that provide a command-line interface.
A rewrite of YUM named DNF replaced YUM as the default package manager in Fedora 22 DNF also improves on YUM in several ways - improved performance, better resolution of dependency conflicts, and easier integration with other software applications. From RHEL 8, yum is an alias for DNF.
History
The original package manager, Yellowdog UPdater (YUP) was developed in 1999–2001 by Dan Burcaw, Bryan Stillwell, Stephen Edie, and Troy Bengegerdes at Terra Soft Solutions (under the leadership of then CEO Kai Staats) as a back-end engine for a graphical installer of Yellow Dog Linux.
In 2003 Robert G. Brown at Duke published documentation for YUM. Subsequent adopters included By 2005, it was estimated to be in use on over half of the Linux market,
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. IBM i, and ArcaOS.
Operations
<code>YUM</code> can perform operations such as:
- Installing packages
<pre>yum install <package_name></pre>
- Deleting packages
<pre>yum remove <package_name></pre>
- updating existing installed packages
<pre>yum update</pre>
- listing available packages
<pre>yum list available</pre>
- listing installed packages A commonly installed package <code>yum-utils</code>, 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 (yumex) are two examples. Yum Extender was deprecated for a while when Fedora migrated to DNF, but it was rewritten in Python 3 and Gtk 3 and has been in progress for development. This brand-new Yum Extender is available for Fedora 34 or newer.
Metadata
Information about packages (as opposed to the packages themselves) is known as metadata. These metadata are combined with information in each package to determine (and resolve, if possible) dependencies among the packages. The hope is to avoid a situation known as dependency hell. A separate tool, <code>createrepo</code>, sets up YUM software repositories, generating the necessary metadata in a standard XML format (and the SQLite metadata if given the -d option).
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.
See also
- DNF - a rewrite of YUM based on libsolv
- urpmi - another cli-frontend for rpm
- APT-RPM - another rpm frontend, derived from APT, cli-frontend for dpkg.
- List of Linux package management systems
References
External links
- Managing packages with yum – Describes how to use YUM to manage packages
- Yum documentation in Fedora
- Yum documentation in CentOS
- Yum documentation in Scientific Linux
