12 yum

5

Click here to load reader

Transcript of 12 yum

Page 1: 12  yum

YUM (Yellowdog Updater Modified) Yellowdog Update, Modified (YUM) is a package manager that was developed by Duke University

to improve the installation of RPMs. yum searches numerous repositories for packages and their

dependencies so they may be installed together in an effort to alleviate dependency issues. Red Hat

Enterprise Linux 5.2 uses yum to fetch packages and install RPMs.

up2date is now deprecated in favor of yum (Yellowdog Updater Modified). The entire stack of tools

which installs and updates software in Red Hat Enterprise Linux 5.2 is now based on yum. This

includes everything, from the initial installation via Anaconda to host software management tools like

pirut.

yum also allows system administrators to configure a local (i.e. available over a local network)

repository to supplement packages provided by Red Hat. This is useful for user groups that use

applications and packages that are not officially supported by Red Hat.

Aside from being able to supplement available packages for local users, using a local yum repository

also saves bandwidth for the entire network. Further, clients that use local yum repositories do not

need to be registered individually to install or update the latest packages from Red Hat Network.

12.1. Setting Up a Yum Repository To set up a repository for Red Hat Enterprise Linux packages, follow these steps:

1. Install the createrepo package:

~]# yum install createrepo

2. Copy all the packages you want to provide in the repository into one directory (/mnt/

local_repo for example).

3. Run createrepo on that directory (for example, createrepo /mnt/local_repo). This will

create the necessary metadata for your Yum repository.

12.2. yum Commands yum commands are typically run as yum <command> <package name/s> . By default, yum will

automatically attempt to check all configured repositories to resolve all package dependencies during

an installation/upgrade.

The following is a list of the most commonly-used yum commands. For a complete list of available yum

commands, refer to man yum.

yum install <package name/s>

Used to install the latest version of a package or group of packages. If no package matches the

specified package name(s), they are assumed to be a shell glob, and any matches are then

installed.

yum update <package name/s>

Used to update the specified packages to the latest available version. If no package name/s are

specified, then yum will attempt to update all installed packages.

Page 2: 12  yum

[main] Options

152

If the --obsoletes option is used (i.e. yum --obsoletes <package name/s> , yum will

process obsolete packages. As such, packages that are obsoleted accross updates will be

removed and replaced accordingly.

yum check-update

This command allows you to determine whether any updates are available for your installed

packages. yum returns a list of all package updates from all repositories if any are available.

yum remove <package name/s>

Used to remove specified packages, along with any other packages dependent on the packages

being removed.

yum provides <file name>

Used to determine which packages provide a specific file or feature.

yum search <keyword>

This command is used to find any packages containing the specified keyword in the description,

summary, packager and package name fields of RPMs in all repositories.

yum localinstall <absolute path to package name/s>

Used when using yum to install a package located locally in the machine.

12.3. yum Options yum options are typically stated before specific yum commands; i.e. yum <options> <command>

<package name/s> . Most of these options can be set as default using the configuration file.

The following is a list of the most commonly-used yum options. For a complete list of available yum

options, refer to man yum.

-y

Answer "yes" to every question in the transaction.

-t

Sets yum to be "tolerant" of errors with regard to packages specified in the transaction. For

example, if you run yum update package1 package2 and package2 is already installed, yum

will continue to install package1.

--exclude=<package name>

Excludes a specific package by name or glob in a specific transaction.

12.4. Configuring yum By default, yum is configured through /etc/yum.conf. The following is an example of a typical /

etc/yum.conf file:

[main]

cachedir=/var/cache/yum

keepcache=0

debuglevel=2

logfile=/var/log/yum.log

distroverpkg=redhat-release

tolerant=1

exactarch=1

Page 3: 12  yum

[main] Options

153

obsoletes=1

gpgcheck=1

plugins=1

metadata_expire=1800

[myrepo]

name=RHEL 5 $releasever - $basearch

baseurl=http://local/path/to/yum/repository/

enabled=1

A typical /etc/yum.conf file is made up of two types of sections: a [main] section, and a

repository section. There can only be one [main] section, but you can specify multiple repositories in

a single /etc/yum.conf.

12.4.1. [main] Options The [main] section is mandatory, and there must only be one. For a complete list of options you can

use in the [main] section, refer to man yum.conf.

The following is a list of the most commonly-used options in the [main] section.

cachedir

This option specifies the directory where yum should store its cache and database files. By default,

the cache directory of yum is /var/cache/yum.

keepcache=<1 or 0>

Setting keepcache=1 instructs yum to keep the cache of headers and packages after a

successful installation. keepcache=1 is the default.

reposdir=<absolute path to directory of .repo files>

This option allows you to specify a directory where .repo files are located. .repo files contain

repository information (similar to the [repository] section 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 each transaction. Refer to

Sección 12.4.2, “ [repository] Options” for more information about options you can use for

both the [repository] section and .repo files.

If reposdir is not set, yum uses the default directory /etc/yum.repos.d.

gpgcheck=<1 or 0>

This disables/enables GPG signature checking on packages on all repositories, including local

package installation. The default is gpgcheck=0, which disables GPG checking.

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 set this on individual repositories instead; i.e., you

can enable GPG checking on one repository while disabling it on another.

assumeyes=<1 or 0>

This determines whether or not yum should prompt for confirmation of critical actions. The default

if assumeyes=0, which means yum will prompt you for confirmation.

If assumeyes=1 is set, yum behaves in the same way that the command line option -y does.

tolerant=<1 or 0>

When enabled (tolerant=1), yum will be tolerant of errors on the command line with regard to

packages. This is similar to the yum command line option -t.

Page 4: 12  yum

[main] Options

154

The default value for this is tolerant=0 (not tolerant).

exclude=<package name/s>

This option allows you to exclude packages by keyword during installation/updates. If you are

specifying multiple packages, this is a space-delimited list. Shell globs using wildcards (for

example, * and ?) are allowed.

retries=<number of retries>

This sets the number of times yum should attempt to retrieve a file before returning an error.

Setting this to 0 makes yum retry forever. The default value is 6.

12.4.2. [repository] Options The [repository] section of the /etc/yum.conf file contains information about a repository

yum can use to find packages during package installation, updating and dependency resolution. A

repository entry takes the following form:

[repository ID]

name=repository name

baseurl=url, file or ftp://path to repository

You can also specify repository information in a separate .repo files (for example, rhel5.repo). The

format of repository information placed in .repo files is identical with the [repository] of /etc/

yum.conf.

.repo files are typically placed in /etc/yum.repos.d, unless you specify a different repository path

in the [main] section of /etc/yum.conf with reposdir=. .repo files and the /etc/yum.conf

file can contain multiple repository entries.

Each repository entry consists of the following mandatory parts:

[repository ID]

The repository ID is a unique, one-word string that serves as a repository identifier.

name=repository name

This is a human-readable string describing the repository.

baseurl=http, file or ftp://path

This is a URL to the directory where the repodatadirectory of a repository is located. If the

repository is local to the machine, use baseurl=file://path to local repository . If

the repository is located online using HTTP, use baseurl=http://link . If the repository is

online and uses FTP, use baseurl=ftp://link .

If a specific online repository requires basic HTTP authentication, you can specify your username

and password in the baseurl line by prepending it as username:password@link. For

example, if a repository on http://www.example.com/repo/ requires a username of "user" and

a password os "password", then the baseurl link can be specified as baseurl=http://

user:[email protected]/repo/.

The following is a list of options most commonly used in repository entries. For a complete list of

repository entries, refer to man yum.conf.

Page 5: 12  yum

155

Useful yum Variables

gpgcheck=<1 or 0>

This disables/enables GPG signature checking a specific repository. The default is

gpgcheck=0, which disables GPG checking.

gpgkey=URL

This option allows you to point to a URL of the ASCII-armoured GPG key file for a

repository. This option is normally used if yum needs a public key to verify a package and

the required key was not imported into the RPM database.

If this option is set, yum will automatically import the key from the specified URL. You

will be prompted before the key is installed unless you set assumeyes=1 (in the

[main] section of / etc/yum.conf) or -y (in a yum transaction).

exclude=<package name/s>

This option is similar to the exclude option in the [main] section of /etc/yum.conf.

However, it only applies to the repository in which it is specified.

includepkgs=<package name/s>

This option is the opposite of exclude. When this option is set on a repository, yum will

only be able to see the specified packages in that repository. By default, all packages in

a repository are visible to yum.

12.5. Useful yum Variables The following is a list of variables you can use for both yum commands and yum configuration

files (i.e.

/etc/yum.conf and .repo files).

$releasever

This is replaced with the package's version, as listed in distroverpkg. This

defaults to the version of the redhat-release package.

$arch

This is replaced with your system's architecture, as listed by os.uname() in Python.

$basearch

This is replaced with your base architecture. For example, if $arch=i686 then

$basearch=i386.

$YUM0-9

This is replaced with the value of the shell environment variable of the same name. If

the shell environment variable does not exist, then the configuration file variable will

not be replaced.