Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Yum (software)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{short description|Free and open-source command-line package management utility}} {{about|the open source application|other uses of "YUM"|Yum (disambiguation)}} {{Redirect|Yumex|the music genre in Yugoslavia|Yu-Mex}} {{lowercase title}} {{Infobox software | name = Yellowdog Updater, Modified | title = YUM | logo = File:YUM logo.svg | screenshot = Yum-update.png | caption = YUM running an update on [[Fedora (operating system)|Fedora]] 16 | screenshot_alt = | collapsible = | author = | developer = Seth Vidal | released = {{Start date and age|2002|06|df=yes}}<ref>{{cite web | url = https://github.com/rpm-software-management/yum/commit/aaa1b77887e841d3ba4c27dfdf58ed649227ee82 | title = Initial Commit | date = 7 June 2002 | work = source control message | publisher = Seth Vidal | access-date = 17 September 2021}}</ref> <ref>{{cite web | url = http://lists.baseurl.org/pipermail/yum/2002-June/011067.html | title = Oldest Mailing List Message | date = 11 June 2002 | work = yum mailing list archive | publisher = Grigory Bakunov | access-date = 17 September 2021}}</ref> | discontinued = | latest release version = {{wikidata|property|reference|P348}} | latest release date = {{start date and age|{{wikidata|qualifier|P348|P577}}}} | latest preview version = | latest preview date = <!-- {{Start date and age|YYYY|MM|DD|df=yes/no}} --> | programming language = [[Python (programming language)|Python]]<ref name="patch">{{cite book |title= Linux Patch Management: Keeping Linux Systems Up to Date |chapter= Chapter 7 β Setting Up a YUM Repository |url=https://ptgmedia.pearsoncmg.com/images/9780132366755/downloads/0132366754_Jang_book.pdf|publisher=Prentice Hall Professional |last= Jang |first= Michael H. |date= 14 December 2005 }}</ref> | operating system = [[Linux]], [[AIX]], [[IBM i]], [[ArcaOS]] | platform = [[rpm (software)|RPM]] | size = | language = | language count = <!-- DO NOT include this parameter unless you know what it does --> | language footnote = | genre = [[Package management system]] | license = [[GNU General Public License#Version 2|GPLv2]] | website = {{URL|yum.baseurl.org}} | standard = | AsOf = }} The '''Yellowdog Updater Modified''' ('''YUM''') is a [[Free and open-source software|free and open-source]] [[Command-line interface|command-line]] [[Package management system|package-management]] utility for computers running the [[Linux]] [[operating system]] using the [[RPM Package Manager]].<ref name="howto">{{cite web |last= Brown |first= Robert G. |title=YUM (Yellowdog Updater, Modified) HOWTO - Introduction|url=http://www.phy.duke.edu/~rgb/General/yum_HOWTO/yum_HOWTO/yum_HOWTO-1.html |publisher=Duke Physics |access-date=12 July 2013}}</ref> Though YUM has a command-line interface, several other tools provide [[graphical user interface]]s to YUM functionality. YUM allows for automatic updates and package and dependency management on RPM-based distributions.<ref name="IBM">{{cite web|url=http://www.ibm.com/developerworks/library/l-lpic1-102-5/|title=RPM and YUM package management|last=Shields|first=Ian|work=Learn Linux, 101|publisher=IBM|date=11 May 2010|access-date=12 July 2013}}</ref> Like the [[Advanced Packaging Tool|Advanced Package Tool]] (APT) from [[Debian]], YUM works with [[Software repository|software repositories]] (collections of packages), which can be accessed locally<ref>{{cite web |title=Creating a Local YUM Repository Using an ISO Image |url= http://docs.oracle.com/cd/E37670_01/E37355/html/ol_create_repo.html |publisher= Oracle |access-date=12 July 2013}}</ref> or over a network connection. Under the hood, YUM depends on [[RPM Package Manager|RPM]], which is a packaging standard for [[digital distribution]] of software, which automatically uses [[MD5|hashes]] and [[GNU Privacy Guard|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 [[Digital rights management|proprietary restrictions]] on copying of packages by end-users. YUM is implemented as libraries in the [[Python (programming language)|Python]] programming language, with a small set of programs that provide a [[command-line interface]].<ref name="Brown" /> GUI-based wrappers such as YUM Extender (yumex) also exist,<ref name="yumex"/> and has been adopted for Fedora Linux until version 22.<ref name=":0">{{cite web|last=Miller|first=Matthew|date=11 June 2014|title=Board Meeting, Rawhide Rebuilt, Firewall Debate, ARM 64, and DNF as Yum Replacement (5tFTW 2014-06-10)|url=https://fedoramagazine.org/5tftw-2014-06-10/|access-date=4 May 2016|publisher=Fedora Magazine}}</ref> A rewrite of YUM named [[DNF (software)|DNF]] replaced YUM as the default package manager in [[Fedora (operating system)|Fedora 22]]<ref name=":0" /> (in 2015). This was required due to Fedora's transition from Python 2 to Python 3, which is not supported by YUM.<ref>{{Cite web|last=Wallen|first=Jack|date=2015-07-02|title=What You Need to Know About Fedora's Switch From Yum to DNF|url=https://www.linux.com/training-tutorials/what-you-need-know-about-fedoras-switch-yum-dnf/|access-date=2021-09-26|website=Linux.com|language=en-US}}</ref>Β DNF also improves on YUM in several ways - improved performance, better resolution of dependency conflicts, and easier integration with other software applications.<ref name="lwn580223">{{cite web|url=https://lwn.net/Articles/580223/|title=DNF and Yum in Fedora|last=Edge|first=Jake|publisher=[[LWN.net]]|date=2014-01-15|access-date=2018-10-16}}</ref> From [[Red Hat Enterprise Linux|RHEL 8]], yum is an alias for [[DNF (software)|DNF]].<ref>{{cite web|url=https://www.techrepublic.com/article/whats-new-with-red-hat-enterprise-linux-8-and-red-hat-virtualization/|title=What's new with Red Hat Enterprise Linux 8 and Red Hat Virtualization|first=Scott|last=Matteson|publisher=TechRepublic|date=2019-03-30|access-date=2019-09-24}}</ref> == 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]].<ref name="howto" /> 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.<ref>{{cite web |title= Seth Vidal, creator of "yum" open source software, killed in bike accident off Hillandale Rd. |work= Durham io: The Daily Durham |date= 9 July 2013 |url= http://durham.io/2013/07/09/seth-vidal-creator-of-yum-open-source-software-killed-in-bike-accident-off-hillandale-rd/ |access-date= 13 July 2013 |archive-url=https://web.archive.org/web/20130712221216/http://durham.io/2013/07/09/seth-vidal-creator-of-yum-open-source-software-killed-in-bike-accident-off-hillandale-rd/ |archive-date= 12 July 2013 |url-status=usurped}}</ref><ref>{{cite web |title= Thank you, Seth Vidal |date= 10 July 2013 |publisher= Red Hat |url= http://www.redhat.com/about/news/archive/2013/7/thank-you-seth-vidal |access-date= 13 July 2013 }}</ref><ref>{{cite web |title= 36-Year-Old Open Source Guru Seth Vidal Has Been Tragically Killed |last= Bort |first= Julie |work= Business Insider |date= 9 July 2013 |url= http://www.businessinsider.com/36-year-old-seth-vidal-tragically-killed-2013-7 |access-date= 13 July 2013 }}</ref> In 2003 [[Robert G. Brown]] at Duke published documentation for YUM.<ref name="Brown">{{cite web |title= YUM: Yellowdog Updater, Modified |date= 17 December 2003 |last= Brown |first= Robert G. |url= http://www.phy.duke.edu/~rgb/General/yum_article/yum_article.pdf |access-date= 13 July 2013}}</ref> Subsequent adopters included<ref name="Brown"/> [[Fedora (operating system)|Fedora]], [[Rocky Linux]], [[AlmaLinux]], [[CentOS]], and many other RPM-based [[Linux distribution]]s, including [[Yellow Dog Linux]] itself, where YUM replaced the original YUP utility β last updated on [[SourceForge]] in 2001.<ref>{{cite web |title= Yellow Dog Update Program |url= http://sourceforge.net/projects/yup/ |work= [[SourceForge]] repository|access-date=18 July 2013 }}</ref> By 2005, it was estimated to be in use on over half of the [[Linux]] market,<ref name="patch" /> and by 2007 YUM was considered the "tool of choice" for RPM-based Linux distributions.<ref>{{cite book |title= The Linux Programmer's Toolbox |last= Fusco |first= John |date= 6 March 2007 |publisher= Pearson Education |isbn= 9780132703048 |url= https://books.google.com/books?id=5fgn7Tg4Lt8C&pg=PT62 }}</ref> YUM aimed to address both the perceived deficiencies in the old [[APT-RPM]],<ref>{{cite web|last=Murphy|first=David|title=How to run your own yum repository|url=http://archive09.linux.com/feature/37660|publisher=Linux Foundation|access-date=12 July 2013|date=23 July 2004|archive-date=21 July 2013|archive-url=https://web.archive.org/web/20130721041347/http://archive09.linux.com/feature/37660|url-status=dead}}</ref> and restrictions of the Red Hat [[up2date]] package management tool. YUM superseded up2date in Red Hat Enterprise Linux 5 and later.<ref>{{cite web|title=What are the yum equivalents of up2date and rpm common tasks on Red Hat Enterprise Linux?|url=https://access.redhat.com/site/solutions/2529|publisher=Red Hat}}</ref> Some authors refer to YUM as the Yellowdog Update Manager, or suggest that "Your Update Manager" would be more appropriate.<ref> {{cite book |title= Network Security Using Linux |last= Sweeney |first= Michael |year= 2005 |isbn= 9781411621770 |page= 84 |publisher= Lulu.com | url = https://books.google.com/books?id=RIPFByuIvvAC&pg=PA84 }} </ref><ref> {{cite book |title= Linux Bible |last1= Negus |first1= Christopher |last2= Bresnahan |first2= Christine |publisher= John Wiley & Sons |year= 2012 |isbn= 9781118286906 |page= 598 |url= https://books.google.com/books?id=w0gL9poGWIIC&pg=PA598 }} </ref> A basic knowledge of YUM is often included as a requirement for Linux system-administrator certification.<ref name="IBM" /> 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.<ref name="howto" /> While yum was originally created for Linux, it has been ported to a number of other operating systems including [[AIX]],<ref>{{cite web|url=https://developer.ibm.com/technologies/systems/articles/configure-yum-on-aix/|date=2018-10-24|title=Configuring YUM and creating local repositories on IBM AIX}}</ref> [[IBM i]],<ref>{{cite web|url=https://www.itjungle.com/2018/07/18/rpm-and-yum-are-a-big-deal-for-ibm-i-heres-why/|date=2018-07-18|title=RPM and Yum are a big deal for IBM i. Here's why}}</ref> and [[ArcaOS]].<ref>{{cite web|url=https://www.arcanoae.com/wiki/anpm/|access-date=2020-09-04|title=Package Manager}}</ref> == Operations == {{Expand section|date=August 2014}} <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 * listing available packages<ref name="Prentice Hall Professional">{{cite book | last1 = Jang | first1 = Michael H. | title = Linux Patch Management: Keeping Linux Systems Up to Date | url = https://books.google.com/books?id=5CsFGUtF2eYC | series = Bruce Perens' Open Source series | year = 2006 | publisher = Prentice Hall Professional | publication-date = 2006 | page = 199 | isbn = 9780132366755 | access-date = 26 August 2014 }}</ref> * listing installed packages<ref name="Prentice Hall Professional"/> == Extensions == [[File:Screenshot-Yum Extender 2.0.4-1.png|thumb|upright=1.5 |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.<ref>{{cite web|title=Yum Plug-ins|url=https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/sec-Yum_Plugins.html|publisher=Red Hat|access-date=12 July 2013}}</ref> A commonly installed<ref>{{cite web|title=Maintaining yum|url=http://www.centos.org/docs/5/html/yum/sn-yum-maintenance.html|publisher=CentOS|access-date=12 July 2013|archive-date=18 November 2018|archive-url=https://web.archive.org/web/20181118175825/https://www.centos.org/docs/5/html/yum/sn-yum-maintenance.html|url-status=dead}}</ref> package <code>yum-utils</code>, contains commands which use the YUM API, and many plugins. [[Graphical user interface]]s, known as "front-ends", allow easier use of YUM. [[PackageKit]] and Yum Extender (yumex) are two examples.<ref name="yumex">{{cite web |url= http://www.yumex.dk/ |title= Yum Extender |work= Yumex Homepage |access-date= 13 July 2013 }}</ref> Yum Extender was deprecated for a while when Fedora migrated to DNF,<ref>{{Cite web|title=dnf replacing yum and dnf-yum - devel - Fedora Mailing-Lists|url=https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/Z3LDJN2JKRIJJXO4PJJCY6CU62UAQPF5/|access-date=2021-09-27|website=lists.fedoraproject.org|language=en}}</ref> 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.<ref>{{Citation|last=Lauridsen|first=Tim|title=Yum Extender (yumex-dnf)|date=2021-09-20|url=https://github.com/timlau/yumex-dnf|access-date=2021-09-26}}</ref> == 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 repository|software repositories]], generating the necessary metadata in a standard [[XML]] format (and the [[SQLite]] metadata if given the -d option).<ref>{{cite web |title= createrepo(8) |work= Linux manual page |url= http://linux.die.net/man/8/createrepo |access-date=12 July 2013}}</ref><ref name=susexml /> The <code>mrepo</code> tool (formerly known as Yam) can help in the creation and maintenance of repositories.<ref>{{cite web|title=mrepo|url=http://freecode.com/projects/mrepo|publisher=Freecode|access-date=12 July 2013}}</ref> YUM's XML repository, built with input from many other developers, quickly became the standard for RPM-based repositories.<ref name=susexml>{{cite web|title=Standards Rpm Metadata|url=http://en.opensuse.org/openSUSE:Standards_Rpm_Metadata|publisher=openSUSE|access-date=12 July 2013}}</ref> Besides the distributions that use YUM directly, [[SUSE Linux]] 10.1<ref>{{cite web|title=SUSE Linux 10.1 Alpha 2 is ready |url=http://lists.opensuse.org/archive/opensuse-announce/2005-Oct/0005.html |access-date=12 July 2013 |url-status=dead |archive-url=https://web.archive.org/web/20060208235135/http://lists.opensuse.org/archive/opensuse-announce/2005-Oct/0005.html |archive-date=February 8, 2006 }}</ref> added support for YUM repositories in [[YaST]], and the [[Open Build Service]] repositories use the YUM XML repository format metadata.<ref name=susexml /> 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.<ref>{{cite web|url=http://www.linuxadvocates.com/2013/03/yum-vs-apt-which-is-best.html|title=YUM vs. APT: Which is Best?|last=Schmitz|first=Dietrich T.}}</ref><ref>{{cite web|url=http://fossforce.com/2015/01/linux-advocates-throws-in-the-towel/|title='Linux Advocates' Throws in the Towel i.e. previous link is dead|publisher=FOSS Force}}</ref> == See also == {{Portal|Free and open-source software}} * [[DNF (software)|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]] {{Clear}} == References == {{Reflist|30em}} == External links == {{Commons category|Yum}} * {{Official website|yum.baseurl.org}} * [http://prefetch.net/articles/yum.html Managing packages with yum] β Describes how to use YUM to manage packages * [http://docs.fedoraproject.org/en-US/Fedora/15/html/Deployment_Guide/ch-yum.html Yum documentation] in [[Fedora (operating system)|Fedora]] * [http://wiki.centos.org/PackageManagement/Yum/ Yum documentation] in [[CentOS]] * [https://www.scientificlinux.org/documentation/faq/yum.apt.repo Yum documentation] {{Webarchive|url=https://web.archive.org/web/20130824002114/http://www.scientificlinux.org/documentation/faq/yum.apt.repo |date=2013-08-24 }} in [[Scientific Linux]] * [https://techhyme.com/top-30-most-commonly-used-yum-yellowdog-updater-modified-commands/ Top 30 Most Commonly Used YUM (Yellowdog Updater, Modified) Commands] {{Linux package management systems}} [[Category:Free package management systems]] [[Category:Free software programmed in Python]] [[Category:Linux package management-related software]] [[Category:Software distribution platforms]] [[Category:Software using the GNU General Public License]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:About
(
edit
)
Template:Citation
(
edit
)
Template:Cite book
(
edit
)
Template:Cite web
(
edit
)
Template:Clear
(
edit
)
Template:Commons category
(
edit
)
Template:Expand section
(
edit
)
Template:Infobox
(
edit
)
Template:Infobox software
(
edit
)
Template:Linux package management systems
(
edit
)
Template:Lowercase title
(
edit
)
Template:Main other
(
edit
)
Template:Official website
(
edit
)
Template:Portal
(
edit
)
Template:Redirect
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Template:Sister project
(
edit
)
Template:Template other
(
edit
)
Template:Webarchive
(
edit
)