Yum (software)

Last updated
YUM
Developer(s) Seth Vidal
Initial releaseJune 2002;22 years ago (2002-06) [1] [2]
Stable release
3.4.3 / 28 June 2011;13 years ago (28 June 2011)
Repository
Written in Python [3]
Operating system Linux, AIX, IBM i, ArcaOS
Platform RPM
Type Package management system
License GPLv2
Website yum.baseurl.org

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. [4] Though YUM has a command-line interface, several other tools provide graphical user interfaces to YUM functionality.

Contents

YUM allows for automatic updates and package and dependency management on RPM-based distributions. [5] Like the Advanced Package Tool (APT) from Debian, YUM works with software repositories (collections of packages), which can be accessed locally [6] 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. [7] GUI-based wrappers such as YUM Extender (yumex) also exist, [8] and has been adopted for Fedora Linux until version 22. [9]

A rewrite of YUM named DNF replaced YUM as the default package manager in Fedora 22 [9] (in 2015). This was required due to Fedora's transition from Python 2 to Python 3, which isn't supported by YUM. [10]  DNF also improves on YUM in several ways - improved performance, better resolution of dependency conflicts, and easier integration with other software applications. [11] From RHEL 8, yum is an alias for DNF. [12]

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 Goutham Krishna) as a back-end engine for a graphical installer of Yellow Dog Linux. [4]

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 Carolina bicycle accident on 8 July 2013. [13] [14] [15]

In 2003 Robert G. Brown at Duke published documentation for YUM. [7] Subsequent adopters included [7] Fedora, Rocky Linux, AlmaLinux, CentOS, and many other RPM-based Linux distributions, including Yellow Dog Linux itself, where YUM replaced the original YUP utility — last updated on SourceForge in 2001. [16] By 2005, it was estimated to be in use on over half of the Linux market, [3] and by 2007 YUM was considered the "tool of choice" for RPM-based Linux distributions. [17]

YUM aimed to address both the perceived deficiencies in the old APT-RPM, [18] and restrictions of the Red Hat up2date package management tool. YUM superseded up2date in Red Hat Enterprise Linux 5 and later. [19] Some authors refer to YUM as the Yellowdog Update Manager, or suggest that "Your Update Manager" would be more appropriate. [20] [21] A basic knowledge of YUM is often included as a requirement for Linux system-administrator certification. [5] 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. [4]

While yum was originally created for Linux, it has been ported to a number of other operating systems including AIX, [22] IBM i, [23] and ArcaOS. [24]

Operations

YUM can perform operations such as:

Extensions

Screenshot of Yum Extender (yumex) Screenshot-Yum Extender 2.0.4-1.png
Screenshot of Yum Extender (yumex)

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. [26] A commonly installed [27] 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 (yumex) are two examples. [8] Yum Extender was deprecated for a while when Fedora migrated to DNF, [28] 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. [29]

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, createrepo, sets up YUM software repositories, generating the necessary metadata in a standard XML format (and the SQLite metadata if given the -d option). [30] [31] The mrepo tool (formerly known as Yam) can help in the creation and maintenance of repositories. [32]

YUM's XML repository, built with input from many other developers, quickly became the standard for RPM-based repositories. [31] Besides the distributions that use YUM directly, SUSE Linux 10.1 [33] added support for YUM repositories in YaST, and the Open Build Service repositories use the YUM XML repository format metadata. [31]

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. [34] [35]

See also

Related Research Articles

<span class="mw-page-title-main">Package manager</span> Software tools for handling software packages

A package manager or package-management system is a collection of software tools that automates the process of installing, upgrading, configuring, and removing computer programs for a computer in a consistent manner.

<span class="mw-page-title-main">APT (software)</span> Free software package management system

Advanced package tool, or APT, is a free-software user interface that works with core libraries to handle the installation and removal of software on Debian and Debian-based Linux distributions. APT simplifies the process of managing software on Unix-like computer systems by automating the retrieval, configuration and installation of software packages, either from precompiled files or by compiling source code.

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.

<span class="mw-page-title-main">Portage (software)</span> Gentoo package management system

Portage is a package management system originally created for and used by Gentoo Linux and also by ChromeOS, Calculate, Sabayon, and Funtoo Linux among others. Portage is based on the concept of ports collections. Gentoo is sometimes referred to as a meta-distribution due to the extreme flexibility of Portage, which makes it operating-system-independent. The Gentoo/Alt project was concerned with using Portage to manage other operating systems, such as BSDs, macOS and Solaris. The most notable of these implementations is the Gentoo/FreeBSD project.

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 the RPM Package Manager and adds advanced features such as automatic dependency resolution. The file /etc/sysconfig/rhn/sources specifies where up2date will search for packages.

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.

APT-RPM is a version of the Advanced Packaging Tool modified to work with the RPM Package Manager. It was originally ported to RPM by Alfredo Kojima and then further developed and improved by Gustavo Niemeyer, both working for the Conectiva Linux distribution at the time.

<span class="mw-page-title-main">Red Hat Enterprise Linux derivatives</span>

Red Hat Enterprise Linux derivatives are Linux distributions that are based on the Red Hat Enterprise Linux (RHEL) Linux distribution.

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 or version control, or repository managers. Package managers allow automatically installing and updating repositories, sometimes called "packages".

<span class="mw-page-title-main">Fedora Linux</span> Linux distribution by Fedora Project

Fedora Linux is a Linux distribution developed by the Fedora Project. It was originally developed in 2003 as a continuation of the Red Hat Linux project. It contains software distributed under various free and open-source licenses and aims to be on the leading edge of open-source technologies. It is now the upstream source for CentOS Stream and Red Hat Enterprise Linux.

<span class="mw-page-title-main">PackageKit</span> Free software

PackageKit is a free and open-source suite of software applications designed to provide a consistent and high-level abstraction layer for a number of different package management systems. PackageKit was created by Richard Hughes in 2007, and first introduced into an operating system as a default application in May 2008 with the release of Fedora 9.

<span class="mw-page-title-main">ZYpp</span> Linux package management library

ZYpp is a package manager engine that powers Linux applications like YaST, Zypper and the implementation of PackageKit for openSUSE and SUSE Linux Enterprise. Unlike some more basic package managers, it provides a satisfiability solver to compute package dependencies. It is a free and open-source software project sponsored by SUSE and licensed under the terms of the GNU General Public License v2 or later. ZYpp is implemented mostly in the programming language C++.

<span class="mw-page-title-main">RPM Package Manager</span> Package management system

RPM Package Manager (RPM) is a free and open-source package management system. The name RPM refers to the .rpm file format and the package manager program itself. RPM was intended primarily for Linux distributions; the file format is the baseline package format of the Linux Standard Base.

Fedora Linux is a popular Linux distribution developed by the Fedora Project. Fedora attempts to maintain a six-month release schedule, offering new versions in May and November, although some releases have experienced minor delays.

Ansible is a suite of software tools that enables infrastructure as code. It is open-source and the suite includes software provisioning, configuration management, and application deployment functionality.

dracut (software) Software to automate the Linux boot process

Dracut is a set of tools that provide enhanced functionality for automating the Linux boot process. The tool named dracut is used to create a Linux boot image (initramfs) by copying tools and files from an installed system and combining it with the Dracut framework, which is usually found in /usr/lib/dracut/modules.d.

<span class="mw-page-title-main">DNF (software)</span> RPM package manager

DNF or Dandified YUM is the next-generation version of the Yellowdog Updater Modified (yum), a package manager for .rpm-based Linux distributions. DNF was introduced in Fedora 18 in 2013; it has been the default package manager since Fedora 22 in 2015, Red Hat Enterprise Linux 8, and OpenMandriva, and is also an alternative package manager for Mageia.

<span class="mw-page-title-main">Borg (backup software)</span> Deduplicating backup program

Borg is deduplicating backup software for various Unix-like operating systems.

firewalld is a firewall management tool for Linux operating systems. It provides firewall features by acting as a front-end for the Linux kernel's netfilter framework. firewalld's current default backend is nftables. Prior to v0.6.0, iptables was the default backend. Through its abstractions, firewalld acts as an alternative to nft and iptables command line programs. The name firewalld adheres to the Unix convention of naming system daemons by appending the letter "d".

References

  1. "Initial Commit". source control message. Seth Vidal. 7 June 2002. Retrieved 17 September 2021.
  2. "Oldest Mailing List Message". yum mailing list archive. Grigory Bakunov. 11 June 2002. Retrieved 17 September 2021.
  3. 1 2 Jang, Michael H. (14 December 2005). "Chapter 7 – Setting Up a YUM Repository". Linux Patch Management: Keeping Linux Systems Up to Date (PDF). Prentice Hall Professional.
  4. 1 2 3 Brown, Robert G. "YUM (Yellowdog Updater, Modified) HOWTO - Introduction". Duke Physics. Retrieved 12 July 2013.
  5. 1 2 Shields, Ian (11 May 2010). "RPM and YUM package management". Learn Linux, 101. IBM. Retrieved 12 July 2013.
  6. "Creating a Local YUM Repository Using an ISO Image". Oracle. Retrieved 12 July 2013.
  7. 1 2 3 Brown, Robert G. (17 December 2003). "YUM: Yellowdog Updater, Modified" (PDF). Retrieved 13 July 2013.
  8. 1 2 "Yum Extender". Yumex Homepage. Retrieved 13 July 2013.
  9. 1 2 Miller, Matthew (11 June 2014). "Board Meeting, Rawhide Rebuilt, Firewall Debate, ARM 64, and DNF as Yum Replacement (5tFTW 2014-06-10)". Fedora Magazine. Retrieved 4 May 2016.
  10. Wallen, Jack (2015-07-02). "What You Need to Know About Fedora's Switch From Yum to DNF". Linux.com. Retrieved 2021-09-26.
  11. Edge, Jake (2014-01-15). "DNF and Yum in Fedora". LWN.net . Retrieved 2018-10-16.
  12. Matteson, Scott (2019-03-30). "What's new with Red Hat Enterprise Linux 8 and Red Hat Virtualization". TechRepublic. Retrieved 2019-09-24.
  13. "Seth Vidal, creator of "yum" open source software, killed in bike accident off Hillandale Rd". Durham io: The Daily Durham. 9 July 2013. Archived from the original on 12 July 2013. Retrieved 13 July 2013.{{cite web}}: CS1 maint: unfit URL (link)
  14. "Thank you, Seth Vidal". Red Hat. 10 July 2013. Retrieved 13 July 2013.
  15. Bort, Julie (9 July 2013). "36-Year-Old Open Source Guru Seth Vidal Has Been Tragically Killed". Business Insider. Retrieved 13 July 2013.
  16. "Yellow Dog Update Program". SourceForge repository. Retrieved 18 July 2013.
  17. Fusco, John (6 March 2007). The Linux Programmer's Toolbox. Pearson Education. ISBN   9780132703048.
  18. Murphy, David (23 July 2004). "How to run your own yum repository". Linux Foundation. Archived from the original on 21 July 2013. Retrieved 12 July 2013.
  19. "What are the yum equivalents of up2date and rpm common tasks on Red Hat Enterprise Linux?". Red Hat.
  20. Sweeney, Michael (2005). Network Security Using Linux. Lulu.com. p. 84. ISBN   9781411621770.
  21. Negus, Christopher; Bresnahan, Christine (2012). Linux Bible. John Wiley & Sons. p. 598. ISBN   9781118286906.
  22. "Configuring YUM and creating local repositories on IBM AIX". 2018-10-24.
  23. "RPM and Yum are a big deal for IBM i. Here's why". 2018-07-18.
  24. "Package Manager" . Retrieved 2020-09-04.
  25. 1 2 Jang, Michael H. (2006). Linux Patch Management: Keeping Linux Systems Up to Date. Bruce Perens' Open Source series. Prentice Hall Professional. p. 199. ISBN   9780132366755 . Retrieved 26 August 2014.
  26. "Yum Plug-ins". Red Hat. Retrieved 12 July 2013.
  27. "Maintaining yum". CentOS. Archived from the original on 18 November 2018. Retrieved 12 July 2013.
  28. "dnf replacing yum and dnf-yum - devel - Fedora Mailing-Lists". lists.fedoraproject.org. Retrieved 2021-09-27.
  29. Lauridsen, Tim (2021-09-20), Yum Extender (yumex-dnf) , retrieved 2021-09-26
  30. "createrepo(8)". Linux manual page. Retrieved 12 July 2013.
  31. 1 2 3 "Standards Rpm Metadata". openSUSE. Retrieved 12 July 2013.
  32. "mrepo". Freecode. Retrieved 12 July 2013.
  33. "SUSE Linux 10.1 Alpha 2 is ready". Archived from the original on February 8, 2006. Retrieved 12 July 2013.
  34. Schmitz, Dietrich T. "YUM vs. APT: Which is Best?".
  35. "'Linux Advocates' Throws in the Towel i.e. previous link is dead". FOSS Force.