From Fedora Project Wiki

2. Software Management Concepts

2.1. About Packages

Fedora software and documentation is supplied in the form of files called RPM packages. Each package is a compressed archive containing product information, program files, icons, documentation and management scripts. Management applications use these files to safely locate, install, update and remove software. For example, the Fedora installation process uses the packages supplied with Fedora to build or upgrade a system to your requirements.

Packages also include a digital signature to prove their source. Software management utilities verify this digital signature by using a GPG public key. The yum and rpm utilities share a common keyring that stores all of the public keys for approved package sources. The system administrator configures these approved package sources.

All Fedora Packages are Free and Open Source Software
All of the software provided by the Fedora Project is Free and open source software. You may download and install Fedora packages on as many systems as desired.

2.2. About Repositories

A repository is a prepared directory or Web site that contains software packages and index files. Software management utilities such as yum automatically locate and obtain the correct RPM packages from these repositories. This method frees you from having to manually find and install new applications or updates. You may use a single command to update all system software, or search for new software by specifying criteria.

A network of servers provide several repositories for each version of Fedora. The package management utilities in Fedora are already configured to use three of these repositories:


The packages that make up a Fedora release, as it is on disc


Updated versions of packages that are provided in Base


Packages for a large selection of additional software

Fedora Development Repositories
Fedora also includes settings for several alternative repositories. These provide packages for various types of test system, and replace one or more of the standard repositories. Only enable support for one of the following repositories if you test or develop Fedora software: fedora-devel (Rawhide), fedora-extras-devel, and updates-testing.

Third-party software developers also provide repositories for their Fedora compatible packages. To learn how to configure your Fedora system to use third-party repositories, read Section 7, "Configuring Access to Software Repositories" .

You may also use the package groups provided by the Fedora repositories to manage related packages as sets. Some third-party repositories add packages to these groups, or provide their packages as additional groups.

Available Package Groups
To view a list of all of the available package groups for your Fedora system, run the command su -c 'yum grouplist'.

Use repositories to ensure that you always receive current versions of software. If several versions of the same package are available, your management utility automatically selects the latest version.

{Admon/caution | Manually Installing Software | Install software using manual methods only when you are confident there is no repository which can currently provide it. You may have to manage that software with manual methods, instead of with Fedora software management utilities.}}

The yum commands shown in this document use repositories as package sources. Refer to Section 8, "Installing Software from an Isolated Package" for details of using yum to install software from a package file.

2.3. About Dependencies

Some of the files installed on a Fedora distribution are libraries which may provide functions to multiple applications. When an application requires a specific library, the package which contains that library is a dependency. To properly install a package, Fedora must first satisfy its dependencies. The dependency information for a RPM package is stored within the RPM file.

The yum utility uses package dependency data to ensure that all of requirements for an application are met during installation. It automatically installs the packages for any dependencies not already present on your system. If a new application has requirements that conflict with existing software, yum aborts without making any changes to your system.

2.4. Understanding Package Names

Each package file has a long name that indicates several key pieces of information. For example, this is the full name of a tsclient package:


Management utilities commonly refer to packages with one of three formats:

  • Package name: tsclient
  • Package name with version and release numbers: tsclient-0.132-6
  • Package name with hardware architecture: tsclient.i386

For clarity, yum lists packages in the format name.architecture. Repositories also commonly store packages in separate directories by architecture. In each case, the hardware architecture specified for the package is the minimum type of machine required to use the package.


Suitable for any current Intel-compatible computer


Compatible with all computer architectures


Suitable for PowerPC systems, such as Apple Power Macintosh


Suitable for 64-bit Intel-compatible processors, such as Opterons

Some software may be optimized for particular types of Intel-compatible machine. Separate packages may be provided for i386, i586, i686 and x86_64 computers. A machine with at least an Intel Pentium, VIA C3 or compatible CPU may use i586 packages. Computers with an Intel Pentium Pro and above, or a current model of AMD chip, may use i686 packages.

Use the short name of the package for yum commands. This causes yum to automatically select the most recent package in the repositories that matches the hardware architecture of your computer.

Specify a package with other name formats to override the default behavior and force yum to use the package that matches that version or architecture. Only override yum when you know that the default package selection has a bug or other fault that makes it unsuitable for installation.

Package Names
You may use any of the following formats to specify a package in a yum operation: name, name.architecture, name-version, name-version-release, name-version-release.architecture, and epoch:name-version-release.architecture.
Previous Page - 1. Introduction Table of Contents Next Page - 3. Software Management Tools in Fedora