The Yellowdog Updater, Modified (YUM) is a
free and open-source
Free and open-source software (FOSS) is a term used to refer to groups of software consisting of both free software and open-source software where anyone is freely licensed to use, copy, study, and change the software in any way, and the source ...
command-line
A command-line interpreter or command-line processor uses a command-line interface (CLI) to receive commands from a user in the form of lines of text. This provides a means of setting parameters for the environment, invoking executables and pro ...
package-management utility for computers running the
Linux
Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which ...
operating system
An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs.
Time-sharing operating systems schedule tasks for efficient use of the system and may also in ...
using the
RPM Package Manager
RPM Package Manager (RPM) (originally Red Hat Package Manager, now a recursive acronym) is a free and open-source package management system. The name RPM refers to the file format and the package manager program itself. RPM was intended primaril ...
.
Though YUM has a command-line interface, several other tools provide
graphical user interface
The GUI ( "UI" by itself is still usually pronounced . or ), graphical user interface, is a form of user interface that allows users to interact with electronic devices through graphical icons and audio indicator such as primary notation, inste ...
s 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
Debian (), also known as Debian GNU/Linux, is a Linux distribution composed of free and open-source software, developed by the community-supported Debian Project, which was established by Ian Murdock on August 16, 1993. The first version of D ...
, YUM works with
software repositories
A software repository, or repo for short, is a storage location for software packages. Often a table of contents is also stored, along with metadata. A software repository is typically managed by source control or repository managers. Package ...
(collections of packages), which can be accessed locally or over a network connection.
Under the hood, YUM depends on
RPM
Revolutions per minute (abbreviated rpm, RPM, rev/min, r/min, or with the notation min−1) is a unit of rotational speed or rotational frequency for rotating machines.
Standards
ISO 80000-3:2019 defines a unit of rotation as the dimensionl ...
, which is a packaging standard for
digital distribution
Digital distribution, also referred to as content delivery, online distribution, or electronic software distribution, among others, is the delivery or distribution of digital media content (media), content such as Sound recording and reproductio ...
of software, which automatically uses
hashes and
digital signatures
A digital signature is a mathematical scheme for verifying the authenticity of digital messages or documents. A valid digital signature, where the prerequisites are satisfied, gives a recipient very high confidence that the message was created b ...
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
Python may refer to:
Snakes
* Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia
** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia
* Python (mythology), a mythical serpent
Computing
* Python (pro ...
programming language, with a small set of programs that provide a
command-line interface
A command-line interpreter or command-line processor uses a command-line interface (CLI) to receive commands from a user in the form of lines of text. This provides a means of setting parameters for the environment, invoking executables and pro ...
.
GUI-based wrappers such as YUM Extender (yumex) also exist,
and has been adopted for Fedora Linux until version 22.
A rewrite of YUM named
DNF replaced YUM as the default package manager in
Fedora 22.
This was required due to Fedora's transition from Python 2 to Python 3, which isn't supported by YUM. DNF also improves on YUM in several ways - improved performance, better resolution of dependency conflicts, and easier integration with other software applications.
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
Fixstars Solutions, Inc. is a software and services company specializing in multi-core processors, particularly in Nvidia's GPU and CUDA environment, IBM Power7, and Cell. They also specialize in solid-state drives and currently manufacture the ...
(under the leadership of then CEO
Kai Staats
Kai Kruse Staats is a filmmaker, science researcher, writer, and entrepreneur.
At the Arizona State University School of Earth & Space Exploration, Staats contributed to the design of off-world human habitats as project lead for an Interplanetary ...
) as a back-end engine for a graphical installer of
Yellow Dog Linux
Yellow Dog Linux (YDL) is a discontinued free and open-source operating system for high-performance computing on multi-core processor computer architectures, focusing on GPU systems and computers using the POWER7 processor. The original develope ...
.
As a full rewrite of YUP, YUM evolved primarily to update and manage
Red Hat Linux
Red Hat Linux was a widely used Commercial software, commercial Open-source software, open-source Linux distribution created by Red Hat until its discontinuation in 2004.
Early releases of Red Hat Linux were called Red Hat Commercial Linux. R ...
systems used at the
Duke University
Duke University is a private research university in Durham, North Carolina. Founded by Methodists and Quakers in the present-day city of Trinity in 1838, the school moved to Durham in 1892. In 1924, tobacco and electric power industrialist James ...
Department of Physics by Seth Vidal and Michael Stenner. Vidal continued to contribute to YUM until his death in a
Durham, North Carolina
Durham ( ) is a city in the U.S. state of North Carolina and the county seat of Durham County, North Carolina, Durham County. Small portions of the city limits extend into Orange County, North Carolina, Orange County and Wake County, North Carol ...
bicycle accident on 8 July 2013.
In 2003
Robert G. Brown Robert G. Brown Jr. (1857 - aft. 1940) was an American engineer who invented the first telephone handset, in 1878. The Gold and Stock Exchange in New York used a few of the handsets. They were not accepted by the Bell Company until nearly fifty ye ...
at Duke published documentation for YUM.
Subsequent adopters included
Fedora
A fedora () is a hat with a soft brim and indented crown.Kilgour, Ruth Edwards (1958). ''A Pageant of Hats Ancient and Modern''. R. M. McBride Company. It is typically creased lengthwise down the crown and "pinched" near the front on both sides ...
,
Rocky Linux
Rocky Linux is a Linux distribution developed by Rocky Enterprise Software Foundation, which is a privately owned benefit corporation that describes itself as a "self imposed not-for-profit". It is intended to be a Downstream (software development ...
,
AlmaLinux
AlmaLinux is a free and open source Linux distribution, created originally by CloudLinux to provide a community-supported, Deployment environment, production-grade enterprise operating system that is Binary-code compatibility, binary-compatible w ...
,
CentOS
CentOS (, from Community Enterprise Operating System; also known as CentOS Linux) is a Linux distribution that provides a free and open-source community-supported computing platform, functionally compatible with its upstream source, Red Hat En ...
, and many other RPM-based
Linux distribution
A Linux distribution (often abbreviated as distro) is an operating system made from a software collection that includes the Linux kernel and, often, a package management system. Linux users usually obtain their operating system by downloading one ...
s, including
Yellow Dog Linux
Yellow Dog Linux (YDL) is a discontinued free and open-source operating system for high-performance computing on multi-core processor computer architectures, focusing on GPU systems and computers using the POWER7 processor. The original develope ...
itself, where YUM replaced the original YUP utility — last updated on
SourceForge
SourceForge is a web service that offers software consumers a centralized online location to control and manage open-source software projects and research business software. It provides source code repository hosting, bug tracking, mirrorin ...
in 2001. By 2005, it was estimated to be in use on over half of the
Linux
Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which ...
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
up2date, also known as the Red Hat Update Agent, is a tool used by older versions of Red Hat Enterprise Linux, CentOS and Fedora Core that downloads and installs new software and upgrades the operating system. It functions as a front-end to th ...
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
The GNU General Public License (GNU GPL or simply GPL) is a series of widely used free software licenses that guarantee end users the Four Freedoms (Free software), four freedoms to run, study, share, and modify the software. The license was th ...
of YUM allows the
free and open-source software
Free and open-source software (FOSS) is a term used to refer to groups of software consisting of both free software and open-source software where anyone is freely licensed to use, copy, study, and change the software in any way, and the source ...
to be freely distributed and modified without any royalty, if other terms of the license are honored.
While yum was originally created for Linux, it has been ported to a number of other operating systems including
AIX
Aix or AIX may refer to:
Computing
* AIX, a line of IBM computer operating systems
*An Alternate Index, for a Virtual Storage Access Method Key Sequenced Data Set
*Athens Internet Exchange, a European Internet exchange point
Places Belgium
...
,
IBM i
IBM i (the ''i'' standing for ''integrated'') is an operating system developed by IBM for IBM Power Systems. It was originally released in 1988 as OS/400, as the sole operating system of the IBM AS/400 line of systems. It was renamed to i5/OS in ...
, and
ArcaOS
ArcaOS is an operating system based on OS/2, developed and marketed by Arca Noae, LLC under license from IBM. It was codenamed Blue Lion during its development. It builds on OS/2 Warp 4.52 by adding support for new hardware, fixing defects and l ...
.
Operations
YUM
can perform operations such as:
* installing packages
* deleting packages
* updating existing installed packages
* listing available packages
* listing installed packages
Extensions
![Screenshot-Yum Extender 2](https://upload.wikimedia.org/wikipedia/commons/e/e1/Screenshot-Yum_Extender_2.0.4-1.png)
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 interface
The GUI ( "UI" by itself is still usually pronounced . or ), graphical user interface, is a form of user interface that allows users to interact with electronic devices through graphical icons and audio indicator such as primary notation, inste ...
s, known as "front-ends", allow easier use of YUM.
PackageKit
PackageKit is a free and open-source suite of software applications designed to provide a consistent and high-level front end for a number of different package management systems. PackageKit was created by Richard Hughes in 2007, and first intro ...
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
Metadata is "data that provides information about other data", but not the content of the data, such as the text of a message or the image itself. There are many distinct types of metadata, including:
* Descriptive metadata – the descriptive ...
. 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 Dependency hell is a colloquial term for the frustration of some software users who have installed software packages which have dependencies on specific versions of other software packages.
The dependency issue arises when several packages have d ...
. A separate tool,
createrepo
, sets up YUM
software repositories
A software repository, or repo for short, is a storage location for software packages. Often a table of contents is also stored, along with metadata. A software repository is typically managed by source control or repository managers. Package ...
, generating the necessary metadata in a standard
XML
Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing arbitrary data. It defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. T ...
format (and the
SQLite
SQLite (, ) is a database engine written in the C programming language. It is not a standalone app; rather, it is a library that software developers embed in their apps. As such, it belongs to the family of embedded databases. It is the most ...
metadata if given the -d option).
The
mrepo
tool (formerly known as Yam) 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
YaST (Yet another Setup Tool) is a Linux operating system setup and configuration tool.
YaST is featured in the openSUSE Linux distribution, as well as in SUSE's derived commercial distributions. It is also part of the defunct United Linux.
YaS ...
, 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.
See also
*
.rpm
RPM Package Manager (RPM) (originally Red Hat Package Manager, now a recursive acronym) is a free and open-source package management system. The name RPM refers to the file format and the package manager program itself. RPM was intended primaril ...
- the packaging file format used by YUM
*
DNF - a rewrite of YUM based on libsolv
*
urpmi
urpmi is a package management tool for installing, removing, updating and querying software packages of local or remote (networked) media. It wraps around the RPM Package Manager in the role of a smart package manager. It uses repositories and ...
- another cli-frontend for rpm
*
APT-RPM - another rpm frontend, derived from APT, cli-frontend for
dpkg
dpkg is the software at the base of the package management system in the free operating system Debian and its numerous derivatives. dpkg is used to install, remove, and provide information about .deb packages.
dpkg (Debian Package) itself is a ...
.
*
List of Linux package management systems
References
External links
*
Managing packages with yum– Describes how to use YUM to manage packages
in
Fedora
A fedora () is a hat with a soft brim and indented crown.Kilgour, Ruth Edwards (1958). ''A Pageant of Hats Ancient and Modern''. R. M. McBride Company. It is typically creased lengthwise down the crown and "pinched" near the front on both sides ...
Yum documentationin
CentOS
CentOS (, from Community Enterprise Operating System; also known as CentOS Linux) is a Linux distribution that provides a free and open-source community-supported computing platform, functionally compatible with its upstream source, Red Hat En ...
Yum documentationin
Scientific Linux
Scientific Linux (SL) was a Linux distribution produced by Fermilab, CERN, DESY and by ETH Zurich. It is a free and open-source operating system based on Red Hat Enterprise Linux.
This product is derived from the free and open-source software m ...
{{Linux package management systems
Free package management systems
Free software programmed in Python
Linux package management-related software
Software distribution platforms