8.4. Configuring Yum and Yum Repositories
The configuration file for
yum
and related utilities is located at /etc/yum.conf
. This file contains one mandatory [main]
section, which allows you to set Yum options that have global effect, and can also contain one or more [repository]
sections, which allow you to set repository-specific options. However, it is recommended to define individual repositories in new or existing .repo
files in the /etc/yum.repos.d/
directory. The values you define in individual [repository]
sections of the /etc/yum.conf
file override values set in the [main]
section.
This section shows you how to:
- set global Yum options by editing the
[main]
section of the/etc/yum.conf
configuration file; - set options for individual repositories by editing the
[repository]
sections in/etc/yum.conf
and.repo
files in the/etc/yum.repos.d/
directory; - use Yum variables in
/etc/yum.conf
and files in the/etc/yum.repos.d/
directory so that dynamic version and architecture values are handled correctly; - add, enable, and disable Yum repositories on the command line; and,
- set up your own custom Yum repository.
8.4.1. Setting [main] Options
The
/etc/yum.conf
configuration file contains exactly one [main]
section, and while some of the key-value pairs in this section affect how yum
operates, others affect how Yum treats repositories. You can add many additional options under the [main]
section heading in /etc/yum.conf
.
A sample
/etc/yum.conf
configuration file can look like this:
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=3
[comments abridged]
# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d
The following are the most commonly-used options in the
[main]
section:
assumeyes
=value- where value is one of:
0
—yum
should prompt for confirmation of critical actions it performs. This is the default.1
— Do not prompt for confirmation of criticalyum
actions. Ifassumeyes=1
is set,yum
behaves in the same way that the command-line option-y
does. cachedir
=directory- where directory is an absolute path to the directory where Yum should store its cache and database files. By default, Yum's cache directory is
/var/cache/yum/$basearch/$releasever
.See Section 8.4.3, “Using Yum Variables” for descriptions of the$basearch
and$releasever
Yum variables. debuglevel
=value- where value is an integer between
1
and10
. Setting a higherdebuglevel
value causesyum
to display more detailed debugging output.debuglevel=0
disables debugging output, whiledebuglevel=2
is the default. exactarch
=value- where value is one of:
0
— Do not take into account the exact architecture when updating packages.1
— Consider the exact architecture when updating packages. With this setting,yum
will not install an i686 package to update an i386 package already installed on the system. This is the default. exclude
=package_name [more_package_names]- This option allows you to exclude packages by keyword during installation/updates. Listing multiple packages for exclusion can be accomplished by quoting a space-delimited list of packages. Shell globs using wildcards (for example,
*
and?
) are allowed. gpgcheck
=value- where value is one of:
0
— Disable GPG signature-checking on packages in all repositories, including local package installation.1
— Enable GPG signature-checking on all packages in all repositories, including local package installation.gpgcheck=1
is the default, and thus all packages' signatures are checked.If this option is set in the[main]
section of the/etc/yum.conf
file, it sets the GPG-checking rule for all repositories. However, you can also setgpgcheck=value
for individual repositories instead; that is, you can enable GPG-checking on one repository while disabling it on another. Settinggpgcheck=value
for an individual repository in its corresponding.repo
file overrides the default if it is present in/etc/yum.conf
.For more information on GPG signature-checking, see Section B.3, “Checking a Package's Signature”. groupremove_leaf_only
=value- where value is one of:
0
—yum
should not check the dependencies of each package when removing a package group. With this setting,yum
removes all packages in a package group, regardless of whether those packages are required by other packages or groups.groupremove_leaf_only=0
is the default.1
—yum
should check the dependencies of each package when removing a package group, and remove only those packages which are not required by any other package or group.For more information on removing packages, see Intelligent package group removal. installonlypkgs
=space separated list of packages- Here you can provide a space-separated list of packages which
yum
can install, but will never update. See the yum.conf(5) manual page for the list of packages which are install-only by default.If you add theinstallonlypkgs
directive to/etc/yum.conf
, you should ensure that you list all of the packages that should be install-only, including any of those listed under theinstallonlypkgs
section of yum.conf(5). In particular, kernel packages should always be listed ininstallonlypkgs
(as they are by default), andinstallonly_limit
should always be set to a value greater than2
so that a backup kernel is always available in case the default one fails to boot. installonly_limit
=value- where value is an integer representing the maximum number of versions that can be installed simultaneously for any single package listed in the
installonlypkgs
directive.The defaults for theinstallonlypkgs
directive include several different kernel packages, so be aware that changing the value ofinstallonly_limit
will also affect the maximum number of installed versions of any single kernel package. The default value listed in/etc/yum.conf
isinstallonly_limit=3
, and it is not recommended to decrease this value, particularly below2
. keepcache
=value- where value is one of:
0
— Do not retain the cache of headers and packages after a successful installation. This is the default.1
— Retain the cache after a successful installation. logfile
=file_name- where file_name is an absolute path to the file in which
yum
should write its logging output. By default,yum
logs to/var/log/yum.log
. multilib_policy
=value- where value is one of:
best
— install the best-choice architecture for this system. For example, settingmultilib_policy=best
on an AMD64 system causesyum
to install 64-bit versions of all packages.all
— always install every possible architecture for every package. For example, withmultilib_policy
set toall
on an AMD64 system,yum
would install both the i686 and AMD64 versions of a package, if both were available. obsoletes
=value- where value is one of:
0
— Disableyum
's obsoletes processing logic when performing updates.1
— Enableyum
's obsoletes processing logic when performing updates. When one package declares in its spec file that it obsoletes another package, the latter package will be replaced by the former package when the former package is installed. Obsoletes are declared, for example, when a package is renamed.obsoletes=1
the default. plugins
=value- where value is one of:
0
— Disable all Yum plug-ins globally.Important
Disabling all plug-ins is not advised because certain plug-ins provide importantYum
services. In particular, rhnplugin provides support forRHN Classic
, and product-id and subscription-manager plug-ins provide support for the certificate-basedContent Delivery Network
(CDN). Disabling plug-ins globally is provided as a convenience option, and is generally only recommended when diagnosing a potential problem withYum
.1
— Enable all Yum plug-ins globally. Withplugins=1
, you can still disable a specific Yum plug-in by settingenabled=0
in that plug-in's configuration file.For more information about various Yum plug-ins, see Section 8.5, “Yum Plug-ins”. For further information on controlling plug-ins, see Section 8.5.1, “Enabling, Configuring, and Disabling Yum Plug-ins”. reposdir
=directory- where directory is an absolute path to the directory where
.repo
files are located. All.repo
files contain repository information (similar to the[repository]
sections of/etc/yum.conf
).yum
collects all repository information from.repo
files and the[repository]
section of the/etc/yum.conf
file to create a master list of repositories to use for transactions. Ifreposdir
is not set,yum
uses the default directory/etc/yum.repos.d/
. retries
=value- where value is an integer
0
or greater. This value sets the number of timesyum
should attempt to retrieve a file before returning an error. Setting this to0
makesyum
retry forever. The default value is10
.
For a complete list of available
[main]
options, see the [main] OPTIONS
section of the yum.conf(5) manual page.