Software:yum

From HandWiki
Short description: Free and open-source command-line package management utility

YUM
Yum.png
Yum-update.png
YUM running an update on Fedora 16
Developer(s)Seth Vidal
Initial releaseJune 2002; 21 years ago (2002-06)[1] [2]
Written inPython[3]
Operating systemLinux, AIX, IBM i, ArcaOS
PlatformRPM
TypePackage management system
LicenseGPLv2
Websiteyum.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.

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]

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.[12][13][14]

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.[15] 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.[16]

YUM aimed to address both the perceived deficiencies in the old APT-RPM,[17] and restrictions of the Red Hat up2date package management tool. YUM superseded up2date in Red Hat Enterprise Linux 5 and later.[18] Some authors refer to YUM as the Yellowdog Update Manager, or suggest that "Your Update Manager" would be more appropriate.[19][20] 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,[21] IBM i,[22] and ArcaOS.[23]

Operations

YUM can perform operations such as:

  • installing packages
  • deleting packages
  • updating existing installed packages
  • listing available packages[24]
  • listing installed packages[24]

Extensions

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.[25] A commonly installed[26] 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,[27] 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.[28]

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).[29][30] The mrepo tool (formerly known as Yam) can help in the creation and maintenance of repositories.[31]

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

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

See also

  • .rpm - the packaging file format used by YUM
  • 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

  1. "Initial Commit". source control message. Seth Vidal. 7 June 2002. https://github.com/rpm-software-management/yum/commit/aaa1b77887e841d3ba4c27dfdf58ed649227ee82. 
  2. "Oldest Mailing List Message". yum mailing list archive. Grigory Bakunov. 11 June 2002. http://lists.baseurl.org/pipermail/yum/2002-June/011067.html. 
  3. 3.0 3.1 Jang, Michael H. (14 December 2005). "Chapter 7 – Setting Up a YUM Repository". Linux Patch Management: Keeping Linux Systems Up to Date. Prentice Hall Professional. https://ptgmedia.pearsoncmg.com/images/9780132366755/downloads/0132366754_Jang_book.pdf. 
  4. 4.0 4.1 4.2 Brown, Robert G.. "YUM (Yellowdog Updater, Modified) HOWTO - Introduction". Duke Physics. http://www.phy.duke.edu/~rgb/General/yum_HOWTO/yum_HOWTO/yum_HOWTO-1.html. 
  5. 5.0 5.1 Shields, Ian (11 May 2010). "RPM and YUM package management". Learn Linux, 101. IBM. http://www.ibm.com/developerworks/library/l-lpic1-102-5/. 
  6. "Creating a Local YUM Repository Using an ISO Image". Oracle. http://docs.oracle.com/cd/E37670_01/E37355/html/ol_create_repo.html. 
  7. 7.0 7.1 7.2 Brown, Robert G. (17 December 2003). "YUM: Yellowdog Updater, Modified". http://www.phy.duke.edu/~rgb/General/yum_article/yum_article.pdf. 
  8. 8.0 8.1 "Yum Extender". Yumex Homepage. http://www.yumex.dk/. 
  9. 9.0 9.1 Miller, Matthew (11 June 2014). "Board Meeting, Rawhide Rebuilt, Firewall Debate, ARM 64, and DNF as Yum Replacement (5tFTW 2014-06-10)". Fedora Magazine. https://fedoramagazine.org/5tftw-2014-06-10/. 
  10. Wallen, Jack (2015-07-02). "What You Need to Know About Fedora's Switch From Yum to DNF" (in en-US). https://www.linux.com/training-tutorials/what-you-need-know-about-fedoras-switch-yum-dnf/. 
  11. Edge, Jake (2014-01-15). "DNF and Yum in Fedora". LWN.net. https://lwn.net/Articles/580223/. 
  12. "Seth Vidal, creator of "yum" open source software, killed in bike accident off Hillandale Rd.". Durham io: The Daily Durham. 9 July 2013. http://durham.io/2013/07/09/seth-vidal-creator-of-yum-open-source-software-killed-in-bike-accident-off-hillandale-rd/. 
  13. "Thank you, Seth Vidal". Red Hat. 10 July 2013. http://www.redhat.com/about/news/archive/2013/7/thank-you-seth-vidal. 
  14. Bort, Julie (9 July 2013). "36-Year-Old Open Source Guru Seth Vidal Has Been Tragically Killed". Business Insider. http://www.businessinsider.com/36-year-old-seth-vidal-tragically-killed-2013-7. 
  15. "Yellow Dog Update Program". SourceForge repository. http://sourceforge.net/projects/yup/. 
  16. Fusco, John (6 March 2007). The Linux Programmer's Toolbox. Pearson Education. ISBN 9780132703048. https://books.google.com/books?id=5fgn7Tg4Lt8C&pg=PT62. 
  17. Murphy, David (23 July 2004). "How to run your own yum repository". Linux Foundation. http://archive09.linux.com/feature/37660. 
  18. "What are the yum equivalents of up2date and rpm common tasks on Red Hat Enterprise Linux?". Red Hat. https://access.redhat.com/site/solutions/2529. 
  19. Sweeney, Michael (2005). Network Security Using Linux. p. 84. ISBN 9781411621770. https://books.google.com/books?id=RIPFByuIvvAC&pg=PA84. 
  20. Negus, Christopher; Bresnahan, Christine (2012). Linux Bible. John Wiley & Sons. p. 598. ISBN 9781118286906. https://books.google.com/books?id=w0gL9poGWIIC&pg=PA598. 
  21. "Configuring YUM and creating local repositories on IBM AIX". 2018-10-24. https://developer.ibm.com/technologies/systems/articles/configure-yum-on-aix/. 
  22. "RPM and Yum are a big deal for IBM i. Here's why". 2018-07-18. https://www.itjungle.com/2018/07/18/rpm-and-yum-are-a-big-deal-for-ibm-i-heres-why/. 
  23. "Package Manager". https://www.arcanoae.com/wiki/anpm/. 
  24. 24.0 24.1 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. https://books.google.com/books?id=5CsFGUtF2eYC. Retrieved 26 August 2014. 
  25. "Yum Plug-ins". Red Hat. https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/sec-Yum_Plugins.html. 
  26. "Maintaining yum". CentOS. http://www.centos.org/docs/5/html/yum/sn-yum-maintenance.html. 
  27. "dnf replacing yum and dnf-yum - devel - Fedora Mailing-Lists" (in en). https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/Z3LDJN2JKRIJJXO4PJJCY6CU62UAQPF5/. 
  28. Lauridsen, Tim (2021-09-20), Yum Extender (yumex-dnf), https://github.com/timlau/yumex-dnf, retrieved 2021-09-26 
  29. "createrepo(8)". Linux manual page. http://linux.die.net/man/8/createrepo. 
  30. 30.0 30.1 30.2 "Standards Rpm Metadata". openSUSE. http://en.opensuse.org/openSUSE:Standards_Rpm_Metadata. 
  31. "mrepo". Freecode. http://freecode.com/projects/mrepo. 
  32. "SUSE Linux 10.1 Alpha 2 is ready". http://lists.opensuse.org/archive/opensuse-announce/2005-Oct/0005.html. 
  33. Schmitz, Dietrich T.. "YUM vs. APT: Which is Best?". http://www.linuxadvocates.com/2013/03/yum-vs-apt-which-is-best.html. 
  34. "'Linux Advocates' Throws in the Towel i.e. previous link is dead". FOSS Force. http://fossforce.com/2015/01/linux-advocates-throws-in-the-towel/. 

External links