Generated by GPT-5-mini| Yum (package manager) | |
|---|---|
| Name | Yum |
| Developer | Red Hat, Inc. |
| Released | 2003 |
| Programming language | Python |
| Operating system | Linux |
| Genre | Package management system |
| License | GPL |
Yum (package manager) Yum is a command-line package management utility originally developed for Fedora-based distributions to automate installation, updating, and removal of RPM packages. It integrates with software repositories to resolve dependencies, retrieve metadata, and perform transactions in environments such as Red Hat Enterprise Linux, CentOS, and Scientific Linux. Yum's extensible plugin architecture and Python implementation have influenced subsequent package tools and distribution workflows used by projects and organizations worldwide.
Yum coordinates package operations for distributions derived from Red Hat Enterprise Linux and the Fedora Project, relying on RPM package formats maintained by the RPM Package Manager community. It interacts with repository metadata that may be hosted by vendors like EPEL providers or community projects such as CentOS mirrors. As part of system administration toolchains used alongside configuration systems like Ansible and orchestration stacks such as OpenStack, Yum plays a role in automated provisioning and lifecycle management.
Yum originated in the early 2000s to address dependency resolution shortcomings in the RPM ecosystem, with development contributions from individuals and organizations including Red Hat, Inc. engineers and community contributors from projects like Fedora. Over time, interactions with initiatives such as CentOS and enterprise adoption by Red Hat Enterprise Linux prompted enhancements in performance and plugin support. The project influenced and was paralleled by tools such as Zypper from openSUSE and later successors in the Linux packaging landscape; decisions by distributions including Fedora to migrate to other tools reflect broader shifts in packaging strategies.
Yum is implemented in Python and interfaces with the RPM Package Manager library to perform low-level package operations. Core components include a package resolver that applies dependency graphs, a metadata parser that consumes repository XML and SQLite caches, and a transaction engine that orchestrates download and install phases. The design supports a plugin API used by third-party modules from organizations like Red Hat, Inc. or community projects to add behavior such as caching, delta RPM handling (used by Presto) and security integration with platforms like OpenSCAP. Yum’s modularity enabled integration with systems management suites such as Spacewalk and provisioning tools like Puppet.
Yum offers dependency resolution, package group handling, history rollback capabilities, and package verification against GPG signatures distributed by vendors including Red Hat, Inc. and community repositories such as EPEL. It supports delta RPMs to reduce bandwidth when updating packages in environments managed by entities like CentOS or cloud providers such as Amazon Web Services, and integrates with system auditing and compliance tools used by CERN and other research institutions. Features for administrators include transaction logging, repository prioritization influenced by practices from projects like Fedora, and extensible hooks that third-party vendors in the Linux Foundation ecosystem may leverage.
Yum consumes repository metadata following standards used across distributions, relying on mirrors and content distribution systems maintained by organizations like the CentOS and Fedora infrastructure teams. Repositories can be hosted on CDNs used by Amazon Web Services, Google Cloud Platform, or community mirror networks coordinated by projects such as Debian mirrors (as a comparative effort). Metadata formats evolved to include SQLite caches and XML attributes consumed by yum plugins and repository management systems like Pulp or Spacewalk, enabling large-scale repository replication for enterprises and research labs such as Lawrence Berkeley National Laboratory.
Administrators commonly use commands to install, update, and remove packages in environments running Red Hat Enterprise Linux or CentOS: - yum install package-name — install a package and its dependencies from enabled repositories hosted by providers such as EPEL. - yum update — update all packages using metadata from mirrors maintained by the Fedora or vendor teams like Red Hat, Inc.. - yum remove package-name — remove a package and resolve dependent packages according to repository priorities set by system integrators using tools such as Puppet or Ansible.
Yum’s command options and output are used in automation playbooks for orchestration platforms such as OpenStack clouds and configuration management systems maintained by enterprises including Red Hat, Inc..
Yum was widely adopted by distributions derived from Red Hat Enterprise Linux including CentOS, Scientific Linux, and historically by Fedora before some projects transitioned to alternative tools. Derivative package managers and front-ends, inspired by Yum’s architecture and plugin model, appear in ecosystem tooling maintained by vendors like Red Hat, Inc. and community projects such as EPEL. The legacy and design principles of Yum influenced newer package management solutions and package repository ecosystems used across cloud providers like Amazon Web Services and research infrastructures at institutions like Stanford University and CERN.