Archive:Docs/Drafts/AdministrationGuide/ManagingSoftware/Concepts

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  and   utilities share a common keyring that stores all of the public keys for approved package sources. The system administrator configures these approved package sources.

About Repositories
A repository is a prepared directory or Web site that contains software packages and index files. Software management utilities such as  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:
 * Base
 * The packages that make up a Fedora release, as it is on disc


 * Updates
 * Updated versions of packages that are provided in Base


 * Extras
 * Packages for a large selection of additional software

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 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.

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 | Installing Software not from a Repository | 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  commands shown in this document use repositories as package sources. Refer to Installing Software from an Isolated Package for details of using  to install software from a package file.

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  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,  aborts without making any changes to your system.

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  package:

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


 * Package name:
 * Package name with version and release numbers:
 * Package name with hardware architecture:

For clarity,  lists packages in the format. 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.


 * i386
 * Suitable for any current Intel-compatible computer


 * noarch
 * Compatible with all computer architectures


 * ppc
 * Suitable for PowerPC systems, such as Apple Power Macintosh


 * x86_64
 * 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,  ,   and   computers. A machine with at least an Intel Pentium, VIA C3 or compatible CPU may use  packages. Computers with an Intel Pentium Pro and above, or a current model of AMD chip, may use  packages.

Use the short name of the package for  commands. This causes  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  to use the package that matches that version or architecture. Only override  when you know that the default package selection has a bug or other fault that makes it unsuitable for installation.