[software-management-guide/fc5] add old version of main XML file

Rüdiger Landmann rlandmann at fedoraproject.org
Sun Jun 6 14:35:46 UTC 2010


commit 148aa4c38603df948f1dd4b21fc47954a2e68684
Author: Ruediger Landmann <r.landmann at redhat.com>
Date:   Mon Jun 7 00:35:13 2010 +1000

    add old version of main XML file

 yum-software-management-2006-04-30.xml | 2090 ++++++++++++++++++++++++++++++++
 1 files changed, 2090 insertions(+), 0 deletions(-)
---
diff --git a/yum-software-management-2006-04-30.xml b/yum-software-management-2006-04-30.xml
new file mode 100644
index 0000000..af819c3
--- /dev/null
+++ b/yum-software-management-2006-04-30.xml
@@ -0,0 +1,2090 @@
+<!-- $Id: -->
+
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
+ "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
+
+<!ENTITY % FDP-ENTITIES SYSTEM "fdp-entities.ent">
+%FDP-ENTITIES;
+<!ENTITY % DOC-ENTITIES SYSTEM "doc-entities.ent">
+%DOC-ENTITIES;
+
+]>
+
+<article id="yum-software-management" lang="en_US">
+  <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
+    href="fdp-info.xml"/>
+
+  <section id="sn-introduction">
+    <title>Introduction</title>
+
+    <section id="sn-purpose">
+      <title>Purpose</title>
+
+      <para>
+        This document presents basic concepts of software management on
+        &FED; systems. It outlines the major functions of
+        <command>yum</command>, the recommended software management tool
+        for &FED;.
+      </para>
+    </section>
+
+    <section id="sn-software-management-audience">
+      <title>Audience</title>
+
+      <para>
+        This document is intended for &FED; users of all levels of
+        experience.
+      </para>
+    </section>
+
+    <section id="sn-software-management-usingdoc">
+      <title>Using This Document</title>
+
+      <para>
+        This document is a reference for using <command>yum</command>.
+        You may wish to read some or all of the sections, depending upon
+        your needs and level of experience. If you are a new user, read
+        <xref
+      linkend="sn-software-management-concepts"/> before
+        using <command>yum</command> for the first time. Experienced
+        Linux users should start with
+        <xref linkend="sn-managing-packages"/>.
+      </para>
+
+      <note>
+        <title>Previous Versions of &FC;</title>
+
+        <para>
+          This document describes the configuration of
+          <command>yum</command> on current versions of &FC;. You must
+          perform the additional step noted in
+          <xref linkend="sn-authorizing-package-sources" /> to enable
+          <command>yum</command> on &FC; 3.
+        </para>
+      </note>
+
+      <para>
+        Most of the examples in this document use the package
+        <filename>tsclient</filename>, which is included with &FC;. The
+        <filename>tsclient</filename> package provides an application
+        for remote desktop access. If you install it successfully you
+        may start the application by choosing
+        <menuchoice><guimenu>Applications</guimenu><guisubmenu>Internet</guisubmenu><guimenuitem>Terminal
+        Server Client</guimenuitem></menuchoice>. To use the examples,
+        substitute the name of the relevant package for
+        <filename>tsclient</filename>. The example commands for &FED;
+        package groups use the <filename>MySQL Database</filename>
+        group.
+      </para>
+
+      <important>
+        <title>Avoid Logging in with the Root Account</title>
+
+        <para>
+          You do not need to log in with the
+          <systemitem class="username">root</systemitem> account in
+          order to manage your &FED; system. All of the commands shown
+          in this tutorial that require
+          <systemitem class="username">root</systemitem> access will
+          prompt you for the
+          <systemitem class="username">root</systemitem> password. The
+          example terminal commands use <command>su
+          <option>-c</option></command> to provide this facility.
+        </para>
+      </important>
+
+      <para>
+        &FC; includes a <command>yum</command> configuration that is
+        suitable for independent systems with Internet access. You may
+        use <command>yum</command> and related software on such systems
+        without any additional configuration.
+      </para>
+
+      <para>
+        If your system is part of a managed network, consult your
+        network administrators for advice. You may need to configure
+        <command>yum</command> to use a network proxy server.
+        <xref linkend="sn-yum-proxy-server"/> explains how to configure
+        <command>yum</command> to use a proxy server. Administrators may
+        also suggest or require that <command>yum</command> clients use
+        specific package repositories. Refer to
+        <xref linkend="sn-using-repositories"/> for instructions on how
+        to configure access to repositories.
+      </para>
+
+      <para>
+        To improve performance and enable disconnected operations,
+        activate the <command>yum</command> caches on your system. Refer
+        to <xref linkend="sn-yum-caching"/> for more information on the
+        caching option.
+      </para>
+    </section>
+
+    <section id="sn-yum-additional-resources">
+      <title>Additional Resources</title>
+      <indexterm>
+        <primary>yum</primary>
+        <secondary>documentation</secondary>
+      </indexterm>
+      <indexterm>
+        <primary>yum</primary>
+        <secondary>man pages</secondary>
+      </indexterm>
+      <para>
+        The <command>yum</command> utility has features and options not
+        discussed in this document. Read the <command>man</command>
+        pages for <command>yum(8)</command> and
+        <filename>yum.conf(5)</filename> to learn more, using the
+        following commands:
+      </para>
+<screen>
+<userinput>man yum
+man yum.conf</userinput>
+</screen>
+      <indexterm>
+        <primary>yum</primary>
+        <secondary>Web sites</secondary>
+      </indexterm>
+      <indexterm>
+        <primary>yum</primary>
+        <secondary>mailing lists</secondary>
+      </indexterm>
+      <para>
+        Other useful <command>yum</command> resources on the Internet
+        include:
+      </para>
+
+      <variablelist>
+        <varlistentry>
+          <term>
+	    Project Web site
+	  </term>
+          <listitem>
+            <para>
+              <ulink url="http://linux.duke.edu/projects/yum/"/>
+            </para>
+          </listitem>
+        </varlistentry>
+
+        <varlistentry>
+          <term>
+	    Users mailing list
+	  </term>
+          <listitem>
+            <para>
+              <ulink url="https://lists.dulug.duke.edu/mailman/listinfo/yum/"/>
+            </para>
+          </listitem>
+        </varlistentry>
+
+        <varlistentry>
+          <term>
+	    Development mailing list
+	  </term>
+          <listitem>
+            <para>
+              <ulink url="https://lists.dulug.duke.edu/pipermail/yum-devel/"/>
+            </para>
+          </listitem>
+        </varlistentry>
+      </variablelist>
+      <tip>
+        <title>Check &BZ; First</title>
+        <para>
+          If you encounter a persistent error with a specific operation,
+          visit &BZ-URL; and review the bug reports for the package or
+          packages involved. An error in a package may cause all
+          <command>yum</command> operations that rely on that package to
+          fail. Please file bug reports for &FED; packages, including
+          <command>yum</command>, on this &BZ; web site.
+        </para>
+      </tip>
+    </section>
+  </section>
+
+  <section id="sn-software-management-concepts">
+    <title>Software Management Concepts</title>
+
+    <section id="sn-about-packages">
+      <title>About Packages</title>
+      <indexterm>
+        <primary>packages</primary>
+        <secondary>defined</secondary>
+      </indexterm>
+      <para>
+        &FED; software and documentation is supplied in the form of
+        files called RPM <firstterm>packages</firstterm>. 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 &FED; installation process
+        uses the packages supplied with &FC; to build or upgrade a
+        system to your requirements.
+      </para>
+
+      <para>
+        Packages also include a digital signature to prove their source.
+        Software management utilities verify this digital signature by
+        using a GPG <firstterm>public key</firstterm>. The
+        <command>yum</command> and <command>rpm</command> utilities
+        share a common <firstterm>keyring</firstterm> that stores all of
+        the public keys for approved package sources. The system
+        administrator configures these approved package sources.
+      </para>
+
+      <note>
+        <title>All &FED; Packages are Open Source Software</title>
+
+        <para>
+          All of the software provided by the &FP; is open source
+          software. You may download and install &FED; packages on as
+          many systems as desired.
+        </para>
+      </note>
+    </section>
+
+    <section id="sn-about-repositories">
+      <title>About Repositories</title>
+      <indexterm>
+        <primary>repositories</primary>
+        <secondary>defined</secondary>
+      </indexterm>
+      <para>
+        A <firstterm>repository</firstterm> is a prepared directory or
+        Web site that contains software packages and index files.
+        Software management utilities such as <command>yum</command>
+        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.
+      </para>
+
+      <para>
+        A network of servers provide several repositories for each
+        version of &FC;. The package management utilities in &FC; are
+        already configured to use three of these repositories:
+      </para>
+
+      <variablelist>
+        <varlistentry>
+          <term>
+	    Base
+	  </term>
+          <listitem>
+            <para>
+              The packages that make up a &FC; release, as it is on disc
+            </para>
+          </listitem>
+        </varlistentry>
+
+        <varlistentry>
+          <term>
+	    Updates
+	  </term>
+          <listitem>
+            <para>
+              Updated versions of packages that are provided in Base
+            </para>
+          </listitem>
+        </varlistentry>
+
+        <varlistentry>
+          <term>
+	    &EX;
+	  </term>
+          <listitem>
+            <para>
+              Packages for a large selection of additional software
+            </para>
+          </listitem>
+        </varlistentry>
+      </variablelist>
+
+      <warning>
+        <title>&FED; Development Repositories</title>
+
+        <para>
+          &FC; 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 &FED; software:
+          <filename>fedora-devel</filename> (Rawhide),
+          <filename>fedora-extras-devel</filename>, and
+          <filename>updates-testing</filename>.
+        </para>
+      </warning>
+
+      <para>
+        Third-party software developers also provide repositories for
+        their &FED; compatible packages. To learn how to configure your
+        &FED; system to use third-party repositories, read
+        <xref linkend="sn-using-repositories"/>.
+      </para>
+      <indexterm>
+        <primary>package groups</primary>
+        <secondary>defined</secondary>
+      </indexterm>
+      <para>
+        You may also use the <firstterm>package groups</firstterm>
+        provided by the &FED; repositories to manage related packages as
+        sets. Some third-party repositories add packages to these
+        groups, or provide their packages as additional groups.
+      </para>
+<!-- SE: Some repositories use groups and some don't: I've tried to put this nicely. -->
+<!-- SE: Using the admonition for this is not optimal, it just doesn't fit anywhere else. -->
+      <note>
+        <title>Available Package Groups</title>
+
+        <para>
+          To view a list of all of the available package groups for your
+          &FED; system, run the command <command>su -c 'yum
+          grouplist'</command>.
+        </para>
+      </note>
+
+      <para>
+        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.
+      </para>
+
+      <caution>
+        <title>Installing Software not from a Repository</title>
+
+        <para>
+          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 &FED; software management utilities.
+        </para>
+
+        <para>
+          The <command>yum</command> commands shown in this document use
+          repositories as package sources. Refer to
+          <xref linkend="sn-yum-installing-frompackage"/> for details of
+          using <command>yum</command> to install software from a
+          package file.
+        </para>
+      </caution>
+    </section>
+
+    <section id="sn-about-dependencies">
+      <title>About Dependencies</title>
+      <indexterm>
+        <primary>dependencies</primary>
+        <secondary>defined</secondary>
+      </indexterm>
+      <para>
+        Some of the files installed on a &FED; distribution are
+        <firstterm>libraries</firstterm> which may provide functions to
+        multiple applications. When an application requires a specific
+        library, the package which contains that library is a
+        <firstterm>dependency</firstterm>. To properly install a
+        package, &FED; must first satisfy its dependencies. The
+        dependency information for a RPM package is stored within the
+        RPM file.
+      </para>
+
+      <para>
+        The <command>yum</command> 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, <command>yum</command> aborts without making any
+        changes to your system.
+      </para>
+    </section>
+
+    <section id="sn-package-names">
+      <title>Understanding Package Names</title>
+      <indexterm>
+        <primary>packages</primary>
+        <secondary>hardware compatibility</secondary>
+      </indexterm>
+      <indexterm>
+        <primary>packages</primary>
+        <secondary>naming</secondary>
+      </indexterm>
+      <para>
+        Each package file has a long name that indicates several key
+        pieces of information. For example, this is the full name of a
+        <filename>tsclient</filename> package:
+      </para>
+<screen>
+<filename>tsclient-0.132-6.i386.rpm</filename>
+</screen>
+      <para>
+        Management utilities commonly refer to packages with one of
+        three formats:
+      </para>
+
+      <itemizedlist>
+        <listitem>
+          <para>
+            Package name: <filename>tsclient</filename>
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            Package name with version and release numbers:
+            <filename>tsclient-0.132-6</filename>
+          </para>
+<!-- In what instances is the release number not needed?  For many -->
+<!-- package updates, only the release number might change. Although it -->
+<!-- might be superfluous, it's never *bad* to include it, right? [PWF] -->
+        </listitem>
+        <listitem>
+          <para>
+            Package name with hardware architecture:
+            <filename>tsclient.i386</filename>
+          </para>
+        </listitem>
+      </itemizedlist>
+
+      <para>
+        For clarity, <command>yum</command> lists packages in the format
+        <filename>name.architecture</filename>. Repositories also
+        commonly store packages in separate directories by architecture.
+        In each case, the hardware architecture specified for the
+        package is the <emphasis>minimum</emphasis> type of machine
+        required to use the package.
+      </para>
+
+      <variablelist>
+        <varlistentry>
+          <term>
+	    i386
+	  </term>
+          <listitem>
+            <para>
+              Suitable for any current Intel-compatible computer
+            </para>
+          </listitem>
+        </varlistentry>
+
+        <varlistentry>
+          <term>
+	    noarch
+	  </term>
+          <listitem>
+            <para>
+              Compatible with all computer architectures
+            </para>
+          </listitem>
+        </varlistentry>
+
+        <varlistentry>
+          <term>
+	    ppc
+	  </term>
+          <listitem>
+            <para>
+              Suitable for PowerPC systems, such as Apple Power
+              Macintosh
+            </para>
+          </listitem>
+        </varlistentry>
+
+        <varlistentry>
+          <term>
+	    x86_64
+	  </term>
+          <listitem>
+            <para>
+              Suitable for 64-bit Intel-compatible processors, such as
+              Opterons
+            </para>
+          </listitem>
+        </varlistentry>
+      </variablelist>
+
+      <para>
+        Some software may be optimized for particular types of
+        Intel-compatible machine. Separate packages may be provided for
+        <option>i386</option>, <option>i586</option>,
+        <option>i686</option> and <option>x86_64</option> computers. A
+        machine with at least an Intel Pentium, VIA C3 or compatible CPU
+        may use <option>i586</option> packages. Computers with an Intel
+        Pentium Pro and above, or a current model of AMD chip, may use
+        <option>i686</option> packages.
+      </para>
+
+      <para>
+        Use the short name of the package for <command>yum</command>
+        commands. This causes <command>yum</command> to automatically
+        select the most recent package in the repositories that matches
+        the hardware architecture of your computer.
+      </para>
+
+      <para>
+        Specify a package with other name formats to override the
+        default behavior and force <command>yum</command> to use the
+        package that matches that version or architecture. Only override
+        <command>yum</command> when you know that the default package
+        selection has a bug or other fault that makes it unsuitable for
+        installation.
+      </para>
+      <tip>
+        <title>Package Names</title>
+        <para>
+          You may use any of the following formats to specify a package
+          in a <command>yum</command> operation:
+          <replaceable>name</replaceable>,
+          <replaceable>name.architecture</replaceable>,
+          <replaceable>name-version</replaceable>,
+          <replaceable>name-version-release</replaceable>,
+          <replaceable>name-version-release.architecture</replaceable>,
+          and
+          <replaceable>epoch:name-version-release.architecture</replaceable>.
+        </para>
+      </tip>
+    </section>
+  </section>
+
+  <section id="sn-software-management-tools">
+    <title>Software Management Tools in &FC;</title>
+    <indexterm>
+      <primary>Add/Remove Software utility</primary>
+    </indexterm>
+    <indexterm>
+      <primary>Software Updater utility</primary>
+    </indexterm>
+    <indexterm>
+      <primary>rpm utility</primary>
+    </indexterm>
+    <para>
+      The <command>yum</command> utility is a complete software
+      management system. &FC; also includes two graphical applications
+      for software management that use <command>yum</command>. The
+      <application>pup</application> utility provides an interface for
+      updating software, and the <application>pirut</application>
+      application enables you to add or remove software.
+    </para>
+
+    <para>
+      Both graphical tools appear in the <guimenu>Applications</guimenu>
+      desktop menu. To update your system with
+      <application>pup</application>, select <menuchoice>
+      <guimenu>Applications</guimenu> <guisubmenu>System
+      Tools</guisubmenu> <guimenuitem>Software Updater</guimenuitem>
+      </menuchoice>. To add or remove software with
+      <application>pirut</application>, select <menuchoice>
+      <guimenu>Applications</guimenu> <guimenuitem>Add/Remove
+      Software</guimenuitem> </menuchoice>.
+    </para>
+
+    <para>
+      The <command>rpm</command> command-line utility has many functions
+      for working with individual RPM packages. You may use it to
+      manually install and remove packages from your system. If you
+      install software with the <command>rpm</command> utility, you must
+      manually check and install any dependencies. For this reason,
+      <application>pirut</application> and <command>yum</command> are
+      the recommended methods for installing software.
+    </para>
+
+    <caution>
+      <title>Current Package Versions</title>
+
+      <para>
+        The <application>pirut</application> and <command>yum</command>
+        utilities ensure that you have the most recent version of
+        software packages. Other methods do not guarantee that the
+        packages are current.
+      </para>
+    </caution>
+  </section>
+
+  <section id="sn-managing-packages">
+    <title>Managing Software with <command>yum</command></title>
+    <indexterm>
+      <primary>yum</primary>
+      <secondary>software management</secondary>
+    </indexterm>
+    <para>
+      Use the <command>yum</command> utility to modify the software on
+      your system in four ways:
+    </para>
+
+    <para>
+      <itemizedlist>
+        <listitem>
+          <para>
+            To install new software from package repositories
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            To install new software from an individual package file
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            To update existing software on your system
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            To remove unwanted software from your system
+          </para>
+        </listitem>
+      </itemizedlist>
+    </para>
+<!-- SE: This duplicates text from the admonition in sn-about-repositories.  It's here as well because the Fedora site has a link straight to this section -->
+    <important>
+      <title>Installing Software from a Package File</title>
+
+      <para>
+        The <command>yum</command> commands shown in this section use
+        repositories as package sources. Refer to
+        <xref linkend="sn-yum-installing-frompackage"/> for details of
+        using <command>yum</command> to install software from an
+        individual package file.
+      </para>
+    </important>
+
+    <para>
+      To use <command>yum</command>, specify a function and one or more
+      packages or package groups. Each section below gives some
+      examples.
+    </para>
+
+    <para>
+      For each operation, <command>yum</command> downloads the latest
+      package information from the configured repositories. If your
+      system uses a slow network connection <command>yum</command> may
+      require several seconds to download the repository indexes and the
+      header files for each package.
+    </para>
+
+    <para>
+      The <command>yum</command> utility searches these data files to
+      determine the best set of actions to produce the required result,
+      and displays the transaction for you to approve. The transaction
+      may include the installation, update, or removal of additional
+      packages, in order to resolve software dependencies.
+    </para>
+
+    <example id="yum-transaction-format">
+      <title>Format of <command>yum</command> Transaction Reports</title>
+
+      <para>
+        This is an example of the transaction for installing
+        <filename>tsclient</filename>:
+      </para>
+<screen>
+<computeroutput>=============================================================================
+ Package                 Arch       Version          Repository        Size
+=============================================================================
+Installing:
+ tsclient                i386       0.132-6          base              247 k
+Installing for dependencies:
+ rdesktop                i386       1.4.0-2          base              107 k
+
+Transaction Summary
+=============================================================================
+Install      2 Package(s)
+Update       0 Package(s)
+Remove       0 Package(s)
+Total download size: 355 k
+Is this ok [y/N]:</computeroutput>
+</screen>
+    </example>
+
+    <para>
+      Review the list of changes, and then press <keycap>y</keycap> to
+      accept and begin the process. If you press <keycap>N</keycap> or
+      <keycap>Enter</keycap>, <command>yum</command> does not download
+      or change any packages.
+    </para>
+
+    <note>
+      <title>Package Versions</title>
+
+      <para>
+        The <command>yum</command> utility only displays and uses the
+        newest version of each package, unless you specify an older
+        version.
+      </para>
+    </note>
+
+    <para>
+      The <command>yum</command> utility also imports the repository
+      public key if it is not already installed on the
+      <command>rpm</command> keyring.
+    </para>
+
+    <example id="yum-publickey-import">
+      <title>Format of <command>yum</command> Public Key Import</title>
+
+      <para>
+        This is an example of the public key import:
+      </para>
+<screen>
+<computeroutput>warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID 4f2a6fd2
+public key not available for tsclient-0.132-6.i386.rpm
+Retrieving GPG key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora
+Importing GPG key 0x4F2A6FD2 "Fedora Project &lt;fedora at redhat.com&gt;"
+Is this ok [y/N]:</computeroutput>
+</screen>
+    </example>
+
+    <para>
+      Check the public key, and then press <keycap>y</keycap> to import
+      the key and authorize the key for use. If you press
+      <keycap>N</keycap> or <keycap>Enter</keycap>,
+      <command>yum</command> stops without installing any packages.
+    </para>
+
+    <para>
+      To ensure that downloaded packages are genuine,
+      <command>yum</command> verifies the digital signature of each
+      package against the public key of the provider. Once all of the
+      packages required for the transaction are successfully downloaded
+      and verified, <command>yum</command> applies them to your system.
+    </para>
+
+    <note>
+      <title>Transaction Log</title>
+
+      <para>
+        Every completed transaction records the affected packages in the
+        log file
+        <indexterm>
+          <primary>log file</primary>
+        </indexterm>
+        <filename>/var/log/yum.log</filename>. You may only read this
+        file with <systemitem class="username">root</systemitem> access.
+      </para>
+    </note>
+
+    <section id="sn-yum-installing-withrepositories">
+      <title>Installing New Software with <command>yum</command></title>
+      <indexterm>
+        <primary>installing software</primary>
+        <see>software, installing</see>
+      </indexterm>
+      <indexterm>
+        <primary>software</primary>
+        <secondary>installing</secondary>
+      </indexterm>
+      <para>
+        To install the package <filename>tsclient</filename>, enter the
+        command:
+      </para>
+<screen>
+<userinput>su -c 'yum install <replaceable>tsclient</replaceable>'</userinput>
+</screen>
+      <para>
+        Enter the password for the
+        <systemitem class="username">root</systemitem> account when
+        prompted.
+      </para>
+
+      <para>
+        To install the package group <filename>MySQL
+        Database</filename>, enter the command:
+      </para>
+<screen>
+<userinput>su -c 'yum groupinstall "<replaceable>MySQL Database</replaceable>"'</userinput>
+</screen>
+      <para>
+        Enter the password for the
+        <systemitem class="username">root</systemitem> account when
+        prompted.
+      </para>
+
+      <important>
+        <title>New Services Require Activation</title>
+
+        <para>
+          When you install a service, &FED; does not activate or start
+          it. To configure a new service to run on bootup, choose
+          <menuchoice> <guimenu>Desktop</guimenu> <guisubmenu>System
+          Settings</guisubmenu> <guisubmenu>Server Settings</guisubmenu>
+          <guimenuitem>Services</guimenuitem> </menuchoice>, or use the
+          <command>chkconfig</command> and <command>service</command>
+          command-line utilities.
+        </para>
+      </important>
+    </section>
+
+    <section id="sn-yum-updating-withrepositories">
+      <title>Updating Software with <command>yum</command></title>
+      <indexterm>
+        <primary>updating</primary>
+        <secondary>software packages</secondary>
+      </indexterm>
+      <indexterm>
+        <primary>software</primary>
+        <secondary>updating</secondary>
+      </indexterm>
+      <para>
+        To update the <filename>tsclient</filename> package to the
+        latest version, type:
+      </para>
+<screen>
+<userinput>su -c 'yum update <replaceable>tsclient</replaceable>'</userinput>
+</screen>
+      <para>
+        Enter the password for the
+        <systemitem class="username">root</systemitem> account when
+        prompted.
+      </para>
+
+      <important>
+        <title>New Software Versions Require Reloading</title>
+
+        <para>
+          If a piece of software is in use when you update it, the old
+          version remains active until the application or service is
+          restarted. Kernel updates take effect when you reboot the
+          system.
+        </para>
+      </important>
+
+      <note>
+        <title>Kernel Packages</title>
+
+        <para>
+          Kernel packages remain on the system after they have been
+          superseded by newer versions. This enables you to boot your
+          system with an older kernel if an error occurs with the
+          current kernel. To minimize maintenance,
+          <command>yum</command> automatically removes obsolete kernel
+          packages from your system, retaining only the current kernel
+          and the previous version.
+        </para>
+      </note>
+
+      <para>
+        To update all of the packages in the package group
+        <filename>MySQL Database</filename>, enter the command:
+      </para>
+<screen>
+<userinput>su -c 'yum groupupdate "<replaceable>MySQL Database</replaceable>"'</userinput>
+</screen>
+      <para>
+        Enter the password for the
+        <systemitem class="username">root</systemitem> account when
+        prompted.
+      </para>
+
+      <note>
+        <title>Updating the Entire System</title>
+
+        <para>
+          To update all of the packages on your &FED; system, use the
+          commands described in
+          <xref
+      linkend="sn-updating-your-system"/>.
+        </para>
+      </note>
+    </section>
+
+    <section id="sn-yum-removing-software">
+      <title>Removing Software with <command>yum</command></title>
+      <indexterm>
+        <primary>removing software</primary>
+      </indexterm>
+      <indexterm>
+        <primary>software</primary>
+        <secondary>removing</secondary>
+      </indexterm>
+      <para>
+        To remove software, <command>yum</command> examines your system
+        for both the specified software, and any software which claims
+        it as a dependency. The transaction to remove the software
+        deletes both the software and the dependencies.
+      </para>
+
+      <para>
+        To remove the <filename>tsclient</filename> package from your
+        system, use the command:
+      </para>
+<screen>
+<userinput>su -c 'yum remove <replaceable>tsclient</replaceable>'</userinput>
+</screen>
+      <para>
+        Enter the password for the
+        <systemitem class="username">root</systemitem> account when
+        prompted.
+      </para>
+
+      <para>
+        To remove all of the packages in the package group
+        <filename>MySQL Database</filename>, enter the command:
+      </para>
+<screen>
+<userinput>su -c 'yum groupremove "<replaceable>MySQL Database</replaceable>"'</userinput>
+</screen>
+      <para>
+        Enter the password for the
+        <systemitem class="username">root</systemitem> account when
+        prompted.
+      </para>
+
+      <note>
+        <title>Data and Configuration File Retention</title>
+
+        <para>
+          The removal process leaves user data in place but may remove
+          configuration files in some cases. If a package removal does
+          not include the configuration file, and you reinstall the
+          package later, it may reuse the old configuration file.
+        </para>
+      </note>
+    </section>
+  </section>
+
+  <section id="sn-searching-packages">
+    <title>Searching for Packages with <command>yum</command></title>
+    <indexterm>
+      <primary>packages</primary>
+      <secondary>locating</secondary>
+    </indexterm>
+    <indexterm>
+      <primary>searching</primary>
+      <secondary>for packages</secondary>
+    </indexterm>
+    <para>
+      Use the search features of <command>yum</command> to find software
+      that is available from the configured repositories, or already
+      installed on your system. Searches automatically include both
+      installed and available packages.
+    </para>
+
+    <para>
+      The format of the results depends upon the option. If the query
+      produces no information, there are no packages matching the
+      criteria.
+    </para>
+
+    <section id="sn-searching-packages-byname">
+      <title>Searching by Package Name and Attributes</title>
+
+      <para>
+        To search for a specific package by name, use the
+        <option>list</option> function. To search for the package
+        <filename>tsclient</filename>, use the command:
+      </para>
+<screen>
+<userinput>su -c 'yum list <replaceable>tsclient</replaceable>'</userinput>
+</screen>
+      <para>
+        Enter the password for the
+        <systemitem class="username">root</systemitem> account when
+        prompted.
+      </para>
+
+      <para>
+        To make your queries more precise, specify packages with a name
+        that include other attributes, such as version or hardware
+        architecture. To search for version 0.132 of the application,
+        use the command:
+      </para>
+<screen>
+<userinput>su -c 'yum list <replaceable>tsclient-0.132</replaceable>'</userinput>
+</screen>
+      <note>
+        <title>Valid Package Attributes</title>
+
+        <para>
+          Refer to <xref linkend="sn-package-names" /> for information
+          on package name formats and the attributes that they include.
+        </para>
+      </note>
+    </section>
+
+    <section id="sn-searching-packages-advanced">
+      <title>Advanced Searches</title>
+
+      <para>
+        If you do not know the name of the package, use the
+        <option>search</option> or <option>provides</option> options.
+        Alternatively, use wild cards with any <command>yum</command>
+        search option to broaden the search criteria.
+      </para>
+
+      <para>
+        The <option>search</option> option checks the names,
+        descriptions, summaries and listed package maintainers of all of
+        the available packages to find those that match. For example, to
+        search for all packages that relate to Palm Pilots, type:
+      </para>
+<screen>
+<userinput>su -c 'yum search <replaceable>PalmPilot</replaceable>'</userinput>
+</screen>
+      <para>
+        Enter the password for the
+        <systemitem class="username">root</systemitem> account when
+        prompted.
+      </para>
+
+      <para>
+        The <option>provides</option> function checks both the files
+        included in the packages and the functions that the software
+        provides. This option requires <command>yum</command> to
+        download and read much larger index files than with the
+        <option>search</option> option.
+      </para>
+
+      <para>
+        To search for all packages that include files called
+        <filename>libneon</filename>, type:
+      </para>
+<screen>
+<userinput>su -c 'yum provides <replaceable>libneon</replaceable>'</userinput>
+</screen>
+      <para>
+        To search for all packages that either provide a MTA (Mail
+        Transport Agent) service, or include files with
+        <filename>mta</filename> in their name:
+      </para>
+<screen>
+<userinput>su -c 'yum provides <replaceable>MTA</replaceable>'</userinput>
+</screen>
+      <para>
+        For each command, at the prompt enter the password for the
+        <systemitem class="username">root</systemitem> account.
+      </para>
+
+      <para>
+        Use the standard wild-card characters to run any search option
+        with a partial word or name: <option>?</option> to represent any
+        one character, and <option>*</option> to mean zero or more
+        characters. Always add the escape character (<option>\</option>)
+        before wild-cards.
+      </para>
+
+      <para>
+        To <option>list</option> all packages with names that begin with
+        <filename>tsc</filename>, type:
+      </para>
+<screen>
+<userinput>su -c 'yum list <replaceable>tsc\*</replaceable>'</userinput>
+</screen>
+    </section>
+
+    <section id="sn-package-matches">
+      <title>Understanding Matches</title>
+
+      <para>
+        Searches with <command>yum</command> show all of the packages
+        that match your criteria. Packages must meet the terms of the
+        search exactly to be considered matches, unless you use
+        wild-cards.
+      </para>
+
+      <para>
+        For example, a search query for <filename>shadowutils</filename>
+        or <filename>shadow-util</filename> would not produce the
+        package <filename>shadow-utils</filename>. This package would
+        match and be shown if the query was
+        <filename>shadow-util\?</filename>, or
+        <filename>shadow\*</filename>.
+      </para>
+    </section>
+  </section>
+
+  <section id="sn-updating-your-system">
+    <title>Updating Your System with <command>yum</command></title>
+    <indexterm>
+      <primary>updating</primary>
+      <secondary>full system</secondary>
+    </indexterm>
+    <indexterm>
+      <primary>yum</primary>
+      <secondary>updating full system</secondary>
+    </indexterm>
+    <para>
+      Use the <option>update</option> option to upgrade all of your
+      &FED; system software to the latest version with one operation.
+    </para>
+
+    <para>
+      To perform a full system update, type this command:
+    </para>
+<screen>
+<userinput>su -c 'yum update'</userinput>
+</screen>
+    <para>
+      At the prompt, enter the
+      <systemitem
+	class="username">root</systemitem> password.
+    </para>
+
+    <section id="sn-automatic-updating">
+      <title>Automatically Updating Your System</title>
+      <indexterm>
+        <primary>automatic updating</primary>
+      </indexterm>
+      <para>
+        The <filename>yum</filename> package supplied with &FC; includes
+        scripts to perform full system updates every day. To activate
+        automatic daily updates, enter this command:
+      </para>
+<screen>
+<userinput>su -c '/sbin/chkconfig --level 345 yum on; /sbin/service yum start'</userinput>
+</screen>
+      <para>
+        At the prompt, enter the password for the
+        <systemitem class="username">root</systemitem> account.
+      </para>
+
+      <note>
+        <title>How Daily Updates are Run</title>
+
+        <para>
+          There is no separate <command>yum</command> service that runs
+          on your system. The command given above enables the control
+          script <filename>/etc/rc.d/init.d/yum</filename>. This control
+          script activates the script
+          <filename>/etc/cron.daily/yum.cron</filename>, which causes
+          the <command>cron</command> service to automatically begin a
+          system update at 4am each day.
+        </para>
+      </note>
+    </section>
+  </section>
+
+  <section id="sn-using-repositories">
+    <title>Configuring Access to Software Repositories</title>
+    <indexterm>
+      <primary>&FEX;</primary>
+    </indexterm>
+    <indexterm>
+      <primary>repositories</primary>
+      <secondary>finding</secondary>
+    </indexterm>
+    <indexterm>
+      <primary>searching</primary>
+      <secondary>for repositories</secondary>
+    </indexterm>
+    <para>
+      &FED; systems automatically use the &FP; repositories. These
+      include &FEX;, the default source of packages for software that is
+      not included with &FC;.
+    </para>
+
+    <note>
+      <title>&FEX; Repositories for Previous Versions of &FC;</title>
+
+      <para>
+        You must manually configure &FC; 3 systems to use &FEX;, using
+        the instructions at
+        <ulink
+	  url="http://fedora.redhat.com/projects/extras/"/>. For
+        additional packages for &FC; 1 and &FC; 2, refer to
+        <ulink
+	  url="http://www.fedora.us/"/>.
+      </para>
+    </note>
+
+    <para>
+      If the &FP; does not supply packages for a product, the
+      manufacturer may provide or recommend a separate repository.
+      Members of the community also maintain repositories to provide
+      packages for &FED; systems. For example,
+      <ulink
+  url="http://www.jpackage.org/"/> distributes popular Java
+      software as packages.
+    </para>
+
+    <section id="sn-adding-repositories">
+      <title>Adding a Repository as a Package Source</title>
+      <indexterm>
+        <primary>repositories</primary>
+        <secondary>adding to yum</secondary>
+      </indexterm>
+      <para>
+        To add an extra repository, place a definition file in the
+        <filename>/etc/yum.repos.d/</filename> directory on your system.
+        Package providers make the definition files for their
+        repositories available on their web sites.
+      </para>
+      <tip>
+        <title>Definition File Extension</title>
+        <para>
+          The names of repository definition files end with
+          <filename>.repo</filename>.
+        </para>
+      </tip>
+      <para>
+        You must have <systemitem class="username">root</systemitem>
+        access to add a file to the definitions directory. To copy the
+        definition file <filename>example.repo</filename>, type this
+        command:
+      </para>
+<screen>
+<userinput>su -c 'cp example.repo /etc/yum.repos.d/'</userinput>
+</screen>
+      <para>
+        At the prompt, enter the password for the
+        <systemitem class="username">root</systemitem> account.
+      </para>
+
+      <para>
+        The configuration file for each repository should include a
+        <command>gpgkey</command> setting. This setting specifies the
+        location of a public key that verifies the packages provided by
+        that repository. This public key is automatically imported the
+        first time that you install software from the repository. If the
+        configuration file provided does not include this setting, refer
+        to <xref linkend="sn-authorizing-package-sources"/>.
+      </para>
+    </section>
+
+    <section id="sn-authorizing-package-sources">
+      <title>Manually Authorizing Package Sources</title>
+      <indexterm>
+        <primary>public keys</primary>
+        <secondary>adding</secondary>
+      </indexterm>
+      <para>
+        To manually add a public key to your <command>rpm</command>
+        keyring, use the <option>import</option> feature of the
+        <command>rpm</command> utility. To import the file
+        <filename>GPG-PUB-KEY.asc</filename>, type the following
+        command:
+      </para>
+<screen>
+<userinput>su -c 'rpm --import <replaceable>GPG-PUB-KEY.asc</replaceable>'</userinput>
+</screen>
+      <para>
+        At the prompt, enter the password for the
+        <systemitem class="username">root</systemitem> account.
+      </para>
+
+      <para>
+        You may also import public keys directly from a web site. For
+        example, to import the file <filename>GPG-PUB-KEY.asc</filename>
+        on the web site <wordasword>www.therepository.com</wordasword>
+        use this command:
+      </para>
+<screen>
+<userinput>su -c 'rpm --import <replaceable>http://www.therepository.com/GPG-PUB-KEY.asc</replaceable>'</userinput>
+</screen>
+      <para>
+        At the prompt, enter the
+        <systemitem
+	class="username">root</systemitem> password.
+      </para>
+
+      <important>
+        <title>Importing the &FED; Key on &FC; 3</title>
+
+        <para>
+          To add the &FED; public key to the <command>rpm</command>
+          keyring on &FC; 3 systems, run the command <command>su -c 'rpm
+          --import /usr/share/rhn/RPM-GPG-KEY-fedora'</command>.
+        </para>
+      </important>
+    </section>
+
+    <section id="sn-compat-repositories">
+      <title>Understanding Repository Compatibility</title>
+      <indexterm>
+        <primary>packages</primary>
+        <secondary>software compatibility</secondary>
+      </indexterm>
+      <indexterm>
+        <primary>repositories</primary>
+        <secondary>compatibility</secondary>
+      </indexterm>
+      <para>
+        The &FEX; repository provides packages which are built to the
+        same standards as &FC; packages. Third-party packages should be
+        compatible with these &FP; packages, unless the provider
+        specifically states otherwise.
+      </para>
+
+      <para>
+        Always read the web site of the repository for information on
+        package compatibility before you add it as a package source.
+        Separate repository providers may offer different and
+        incompatible versions of the same software. Third-party
+        repositories may also provide alternative packages for software
+        that is included in &FED; repositories.
+      </para>
+
+      <para>
+        Alternative packages may contain versions of the software that
+        function differently from the version in the &FP; packages.
+        Determine the benefits and potential incompatibilities before
+        replacing &FP; packages with alternative versions.
+      </para>
+
+      <caution>
+        <title>Incompatible Repositories</title>
+
+        <para>
+          If you configure your system to use incompatible repositories
+          <command>yum</command> operations may fail.
+        </para>
+      </caution>
+
+      <para>
+        Packages built for one version of &FED; are usually not
+        compatible with other versions of &FED;. The web site of the
+        provider should specifically state which versions of &FED; they
+        support.
+      </para>
+      <tip>
+        <title>Old Versions of <command>yum</command> and Current Repositories</title>
+        <para>
+          The data format for repository indexes changed with version
+          2.1 of <command>yum</command>. This was the version supplied
+          with &FC; 3. Repository providers should specify the versions
+          of &FC; that they support. To confirm that an unlabeled
+          repository is compatible with current versions of
+          <command>yum</command>, check that it has a sub-directory
+          called <filename>repodata/</filename>.
+        </para>
+      </tip>
+    </section>
+
+    <section id="sn-removing-sources">
+      <title>Disabling or Removing Package Sources</title>
+      <indexterm>
+        <primary>repositories</primary>
+        <secondary>disabling in yum</secondary>
+      </indexterm>
+      <indexterm>
+        <primary>repositories</primary>
+        <secondary>removing from yum</secondary>
+      </indexterm>
+      <para>
+        Set <command>enable=0</command> in a definition file to prevent
+        <command>yum</command> from using that repository. The
+        <command>yum</command> utility ignores any definition file with
+        this setting.
+      </para>
+
+      <para>
+        To completely remove access to a repository:
+      </para>
+      <procedure>
+        <step>
+          <para>
+            Delete the relevant file from
+            <filename>/etc/yum.repos.d/</filename>.
+          </para>
+        </step>
+        <step>
+          <para>
+            Delete the cache directory from
+            <filename>/var/cache/yum/</filename>.
+          </para>
+        </step>
+      </procedure>
+<!-- What with the "web of trust," removing GPG keys is not really -->
+<!-- something we should encourage. Having an extra GPG key in the RPM -->
+<!-- database is not a vulnerability, nor does it hamper the system in -->
+<!-- any way.  These are probably a couple of reasons Seth didn't build -->
+<!-- this function into yum as part of "clean all," for example.  Since -->
+<!-- we just had several admonitions against people running the rpm -->
+<!-- command on its own anyway, I would just omit this part -->
+<!-- completely. [PWF] -->
+<!--
+
+      <important>
+        <title>Remove Unneeded Public Keys</title>
+
+        <para>
+          If you will not be using any further packages from a provider,
+	  remove their public key from the <command>rpm</command>
+	  keyring using the procedure described in
+          <xref linkend="sn-removing-publickeys" />.
+        </para>
+      </important>
+    </section>
+
+    <section id="sn-removing-publickeys">
+      <title>Removing Public Keys</title>
+      <indexterm>
+        <primary>public keys, removing</primary>
+      </indexterm>
+      <para>
+        To remove a public key from the keyring you first must determine
+        the full name of the key, as it registered in
+        <command>rpm</command>. Run this command to view the details of
+        the public keys on the <command>rpm</command> keyring:
+      </para>
+<screen>
+<userinput>rpm -qi gpg-pubkey-*</userinput>
+</screen>
+      <para>
+        Locate the heading for the relevant public key. The public key
+        headings follow this format:
+      </para>
+
+      <example id="publickey-header-format">
+        <title>Format of <command>rpm</command> Public Key Headers</title>
+<screen>
+<computeroutput>Name        : gpg-pubkey                   Relocations: (not relocatable)
+Version     : 4f2a6fd2                          Vendor: (none)
+Release     : 3f9d9d3b                      Build Date: Wed 15 Jun 2005 09:55:33 PM BST
+Install Date: Wed 15 Jun 2005 09:55:33 PM BST      Build Host: localhost
+Group       : Public Keys                   Source RPM: (none)
+Size        : 0                                License: pubkey
+Signature   : (none)
+Summary     : gpg(Fedora Project &lt;fedora at redhat.com&gt;)
+Description :</computeroutput>
+</screen>
+      </example>
+
+      <para>
+        Add the <option>Version</option> and <option>Release</option>
+        attributes to <option>gpg-pubkey-</option> to make the complete
+        name of the key, in the form
+        <option>gpg-pubkey-Version_number-Release_number</option>. The
+        <command>rpm</command> identification for the &FP; public key
+        shown above is: <option>gpg-pubkey-4f2a6fd2-3f9d9d3b</option>.
+      </para>
+
+      <para>
+        Once you know the identification name of the key, use the
+        command <command>rpm <option>-e</option></command> to remove it.
+        To remove the &FP; public key shown above the exact command
+        would be:
+      </para>
+<screen>
+<userinput>su -c 'rpm -e <replaceable>gpg-pubkey-4f2a6fd2-3f9d9d3b</replaceable>'</userinput>
+</screen>
+      <para>
+        Enter the password for the
+        <systemitem class="username">root</systemitem> account when
+        prompted.
+      </para>
+
+-->
+    </section>
+  </section>
+
+  <section id="sn-yum-installing-frompackage">
+    <title>Installing Software from an Isolated Package</title>
+    <indexterm>
+      <primary>installing software</primary>
+      <secondary>from a package</secondary>
+      <see>software, installing from a package</see>
+    </indexterm>
+    <indexterm>
+      <primary>software</primary>
+      <secondary>installing from a package</secondary>
+    </indexterm>
+    <para>
+      Use repositories and the standard <command>yum</command> commands
+      to locate and install new software, unless the software package is
+      not available from any repository. In these cases, use the
+      <option>localinstall</option> function to install the software
+      from the package file.
+    </para>
+
+    <important>
+      <title>Public Key is Required</title>
+
+      <para>
+        Ensure that the public key for the package source has been
+        imported before you install a package without a repository.
+        Refer to <xref linkend="sn-authorizing-package-sources"/>.
+      </para>
+    </important>
+
+    <para>
+      Enter this command to install the package
+      <filename>tsclient-0.132-4.i386.rpm</filename>:
+    </para>
+<screen>
+<userinput>su -c 'yum localinstall <replaceable>tsclient-0.132-4.i386.rpm</replaceable>'</userinput>
+</screen>
+    <para>
+      At the prompt, enter the
+      <systemitem
+	class="username">root</systemitem> password.
+    </para>
+
+    <note>
+      <title>Previously Installed Software is Updated</title>
+
+      <para>
+        If the package provides a later version of software that is
+        already installed on your system, <command>yum</command> updates
+        the installed software.
+      </para>
+    </note>
+
+    <para>
+      If the package requires software that is not installed on your
+      system, <command>yum</command> attempts to meet the dependencies
+      with packages from the configured repositories. You may need to
+      manually download and install additional packages in order to
+      satisfy all of the dependencies.
+    </para>
+
+    <caution>
+      <title>Maintaining Manually Installed Software</title>
+
+      <para>
+        If you install software that is not provided by a repository,
+        <command>yum update</command> cannot automatically upgrade it as
+        new versions become available. To ensure that you have the
+        latest packages, subscribe to e-mail or RSS services that notify
+        you when new versions are released.
+      </para>
+    </caution>
+  </section>
+
+  <section id="sn-yum-customizing">
+    <title>Customizing <command>yum</command></title>
+<!-- SE: The dictionary says "plug-in", but yum documentation uses "plugin". For consistency, I'm using "plugin" in this document. -->
+    <para>
+      To change the behavior of <command>yum</command>, you may either
+      edit the configuration files, or install
+      <firstterm>plugins</firstterm>. Plugins enable developers to add
+      new features to <command>yum</command>.
+    </para>
+
+    <section id="sn-yum-configfiles">
+      <title>Editing the <command>yum</command> Configuration</title>
+      <indexterm>
+        <primary>configuration files</primary>
+      </indexterm>
+      <para>
+        The file <filename>/etc/yum.conf</filename> provides the main
+        configuration for <command>yum</command>. Settings in a
+        repository definition file override the main configuration for
+        those operations that use the defined repository.
+      </para>
+
+      <para>
+        To edit <filename>/etc/yum.conf</filename>, run a text editor
+        with <systemitem class="username">root</systemitem> privileges.
+        This command opens <filename>/etc/yum.conf</filename> with
+        <application>gedit</application>, the default text editor for
+        &FED; desktop systems:
+      </para>
+<screen>
+<userinput>su -c 'gedit /etc/yum.conf'</userinput>
+</screen>
+      <para>
+        Enter the password for the
+        <systemitem class="username">root</systemitem> account when
+        prompted.
+      </para>
+
+      <para>
+        The main configuration file provides the settings that apply to
+        all <command>yum</command> operations. These include caching
+        options, and proxy server settings. The directory
+        <filename>/etc/yum.repos.d/</filename> holds definition files
+        for each repository that <command>yum</command> uses. Plugins
+        use the configuration files in the directory
+        <filename>/etc/yum/pluginconf.d/</filename>.
+      </para>
+
+      <para>
+        The following sections in this document provide further
+        information on configuring <command>yum</command>:
+      </para>
+
+      <para>
+        <itemizedlist>
+          <listitem>
+            <para>
+              <xref linkend="sn-using-repositories"/>
+            </para>
+          </listitem>
+          <listitem>
+            <para>
+              <xref linkend="sn-yum-managing-plugins"/>
+            </para>
+          </listitem>
+          <listitem>
+            <para>
+              <xref linkend="sn-yum-enabling-caching"/>
+            </para>
+          </listitem>
+          <listitem>
+            <para>
+              <xref linkend="sn-yum-proxy-server"/>
+            </para>
+          </listitem>
+        </itemizedlist>
+      </para>
+      <tip>
+        <title>Further Documentation</title>
+        <para>
+          Refer to the <command>man</command> page for
+          <filename>yum.conf</filename> for a complete list of the
+          configuration options supported by <command>yum</command>.
+        </para>
+      </tip>
+    </section>
+
+    <section id="sn-yum-managing-plugins">
+      <title>Working with <command>yum</command> Plugins</title>
+      <indexterm>
+        <primary>plugins</primary>
+        <secondary>installing</secondary>
+      </indexterm>
+      <para>
+        Each <command>yum</command> plugin is a single file, written in
+        the Python programming language. You may download plugins from
+        the <command>yum</command> project Web site, or from third-party
+        providers. The <command>yum</command> project maintains a list
+        of plugins on the page
+        <ulink url="http://wiki.linux.duke.edu/YumPlugins"/>.
+      </para>
+      <tip>
+        <title>Plugin File Extension</title>
+        <para>
+          The names of <command>yum</command> plugin files end with
+          <filename>.py</filename>, the standard extension for Python
+          scripts.
+        </para>
+      </tip>
+      <para>
+        To install a plugin, copy it to the directory
+        <filename>/usr/lib/yum-plugins/</filename>. Create a
+        configuration file for the plugin in the directory
+        <filename>/etc/yum/pluginconf.d/</filename>. Save the
+        configuration file with the same name as the plugin, but with
+        the extension <filename>.conf</filename>.
+      </para>
+
+      <note>
+        <title><systemitem class="username">root</systemitem> Privileges Required</title>
+
+        <para>
+          You must have <systemitem class="username">root</systemitem>
+          access to add files to the directories
+          <filename>/usr/lib/yum-plugins/</filename> and
+          <filename>/etc/yum/pluginconf.d/</filename>.
+        </para>
+      </note>
+
+      <para>
+        For example, to copy the plugin
+        <filename>exampleplugin.py</filename>, enter the command:
+      </para>
+<screen>
+<userinput>su -c 'cp exampleplugin.py /usr/lib/yum-plugins/'</userinput>
+</screen>
+      <para>
+        Enter the password for the
+        <systemitem class="username">root</systemitem> account when
+        prompted.
+      </para>
+
+      <para>
+        You may then create a configuration file for the plugin with a
+        text editor. This example uses <application>gedit</application>,
+        the default text editor for &FED; desktop systems:
+      </para>
+<screen>
+<userinput>su -c 'gedit /etc/yum/pluginconf.d/exampleplugin.conf'</userinput>
+</screen>
+      <para>
+        Enter the password for the
+        <systemitem class="username">root</systemitem> account when
+        prompted.
+      </para>
+
+      <para>
+        Each plugin configuration file includes the
+        <command>enabled</command> setting. Some plugins also require
+        additional settings. To determine the correct settings, either
+        refer to the documentation supplied with the plugin, or read the
+        plugin file itself with any text editor.
+      </para>
+
+      <example>
+        <title>Example Plugin Configuration File</title>
+<screen>
+<computeroutput>[main]
+enabled=1
+anotheroption=0</computeroutput>
+</screen>
+      </example>
+
+      <note>
+        <title>Plugin Installed by Default</title>
+
+        <para>
+          <indexterm>
+            <primary>plugins</primary>
+            <secondary>installonlyn</secondary>
+          </indexterm>
+          &FC; includes the <filename>installonlyn</filename> plugin.
+          This plugin modifies <command>yum</command> to remove excess
+          kernel packages, so that no more than a set number of kernels
+          exist on the system. By default,
+          <filename>installonlyn</filename> retains the two most current
+          kernels, and automatically removes older kernel packages.
+        </para>
+      </note>
+
+      <para>
+        <indexterm>
+          <primary>plugins</primary>
+          <secondary>removing</secondary>
+        </indexterm>
+        To remove a plugin, delete both the original file and the
+        automatically generated bytecode file from
+        <filename>/usr/lib/yum-plugins/</filename>. The bytecode file
+        uses the same name as the plugin, but has the extension
+        <filename>.pyc</filename>. Remove the relevant configuration
+        file in <filename>/etc/yum/pluginconf.d/</filename>.
+      </para>
+
+      <para>
+        This command removes the plugin
+        <filename>exampleplugin</filename>:
+      </para>
+<screen>
+<userinput>su -c 'rm -f /etc/yum/pluginconf.d/exampleplugin.conf; rm -f /usr/lib/yum-plugins/exampleplugin.py*'</userinput>
+</screen>
+      <para>
+        Enter the password for the
+        <systemitem class="username">root</systemitem> account when
+        prompted.
+      </para>
+    </section>
+  </section>
+
+  <section id="sn-yum-caching">
+    <title>Working with <command>yum</command> Caching</title>
+    <indexterm>
+      <primary>caching</primary>
+    </indexterm>
+    <indexterm>
+      <primary>packages</primary>
+      <secondary>caching</secondary>
+    </indexterm>
+    <para>
+      By default, current versions of <command>yum</command> delete the
+      data files and packages that they download, after these have been
+      successfully used for an operation. This minimizes the amount of
+      storage space that <command>yum</command> uses. You may enable
+      caching, so that <command>yum</command> retains the files that it
+      downloads in cache directories.
+    </para>
+
+    <para>
+      Caches provide three advantages:
+    </para>
+
+    <para>
+      <itemizedlist>
+        <listitem>
+          <para>
+            The performance of <command>yum</command> increases
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            You may carry out <command>yum</command> operations without
+            a network connection, by using only the caches
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            You may copy packages from the caches and reuse them
+            elsewhere
+          </para>
+        </listitem>
+      </itemizedlist>
+    </para>
+
+    <para>
+      By default, <command>yum</command> stores temporary files under
+      the directory <filename>/var/cache/yum/</filename>, with one
+      subdirectory for each configured repository. The
+      <filename>packages/</filename> directory within each repository
+      directory holds the cached packages. For example, the directory
+      <filename>/var/cache/yum/development/packages/</filename> holds
+      packages downloaded from the <filename>development</filename>
+      repository.
+    </para>
+    <tip>
+      <title>Clearing the <command>yum</command> Caches</title>
+      <para>
+        Cached files use disk space until removed. You may wish to
+        periodically clear the <command>yum</command> caches to recover
+        capacity. Refer to <xref linkend="sn-yum-clearance"/> for
+        information on clearing the caches.
+      </para>
+    </tip>
+    <para>
+      If you remove a package from the cache, you do not affect the copy
+      of the software installed on your system.
+    </para>
+
+    <section id="sn-yum-enabling-caching">
+      <title>Enabling the Caches</title>
+      <indexterm>
+        <primary>caching</primary>
+        <secondary>enabling</secondary>
+      </indexterm>
+      <para>
+        To configure <command>yum</command> to retain downloaded files
+        rather than discarding them, set the
+        <command>keepcache</command> option in
+        <filename>/etc/yum.conf</filename> to <userinput>1</userinput>:
+      </para>
+<screen>
+<computeroutput>
+keepcache=1
+</computeroutput>
+</screen>
+      <para>
+        Refer to <xref linkend="sn-yum-configfiles"/> for more
+        information on editing the <command>yum</command> configuration
+        file.
+      </para>
+
+      <para>
+        Once you enable caching, every <command>yum</command> operation
+        may download package data from the configured repositories. To
+        ensure that the caches have a set of package data, carry out an
+        operation after you enable caching. Use a <option>list</option>
+        or <option>search</option> query to download package data
+        without modifying your system.
+      </para>
+    </section>
+
+    <section id="sn-yum-using-cacheonly">
+      <title>Using <command>yum</command> in Cache-only Mode</title>
+      <indexterm>
+        <primary>yum</primary>
+        <secondary>cache-only mode</secondary>
+      </indexterm>
+      <para>
+        To carry out a <command>yum</command> command without a network
+        connection, add the <option>-C</option> option. This causes
+        <command>yum</command> to proceed without checking any network
+        repositories, and use only cached files. In this mode,
+        <command>yum</command> may only install packages that have been
+        downloaded and cached by a previous operation.
+      </para>
+
+      <para>
+        To search for the package <filename>tsclient</filename> without
+        using a network connection, enter the command:
+      </para>
+<screen>
+<userinput>su -c 'yum -C list <replaceable>tsclient</replaceable>'</userinput>
+</screen>
+      <para>
+        Enter the password for the
+        <systemitem class="username">root</systemitem> account when
+        prompted.
+      </para>
+
+      <note>
+        <title>Cache-only Mode Requires Cached Data</title>
+
+        <para>
+          Cache-only mode requires package data to exist in the caches.
+          If you enable caching, every <command>yum</command> operation
+          may update the data files, unless cache-only mode is specified
+          for the operation.
+        </para>
+      </note>
+    </section>
+
+    <section id="sn-yum-clearance">
+      <title>Clearing the <command>yum</command> Caches</title>
+      <indexterm>
+        <primary>caching</primary>
+        <secondary>cleaning caches</secondary>
+      </indexterm>
+      <indexterm>
+        <primary>yum</primary>
+        <secondary>cleaning caches</secondary>
+      </indexterm>
+      <para>
+        If you configure it to do so, <command>yum</command> retains the
+        packages and package data files that it downloads, so that they
+        may be reused in future operations without being downloaded
+        again. To purge the package data files, use this command:
+      </para>
+<screen>
+<userinput>su -c 'yum clean headers'</userinput>
+</screen>
+      <para>
+        Run this command to remove all of the packages held in the
+        caches:
+      </para>
+<screen>
+<userinput>su -c 'yum clean packages'</userinput>
+</screen>
+      <para>
+        When using these commands, at the prompt, enter the password for
+        the <systemitem class="username">root</systemitem> account.
+      </para>
+
+      <para>
+        Purging cached files causes those files to downloaded again the
+        next time that they are required. This increases the amount of
+        time required to complete the operation.
+      </para>
+    </section>
+  </section>
+
+  <section id="sn-yum-proxy-server">
+    <title>Using <command>yum</command> with a Proxy Server</title>
+    <indexterm>
+      <primary>proxy server</primary>
+    </indexterm>
+    <indexterm>
+      <primary>yum</primary>
+      <secondary>using with a proxy server</secondary>
+    </indexterm>
+    <para>
+      By default, <command>yum</command> accesses network repositories
+      with HTTP. All <command>yum</command> HTTP operations use
+      HTTP/1.1, and are compatible with web proxy servers that support
+      this standard. You may also access FTP repositories, and configure
+      <command>yum</command> to use an FTP proxy server. The
+      <filename>squid</filename> package provides a proxy service for
+      both HTTP/1.1 and FTP connections.
+    </para>
+    <tip>
+      <title>Modifying <command>yum</command> for Network Compatibility</title>
+      <para>
+        Refer to the <command>man</command> page for
+        <filename>yum.conf</filename> for information on HTTP settings
+        that may be modified for compatibility with nonstandard web
+        proxy servers. Alternatively, configure <command>yum</command>
+        to use an FTP proxy server, and access repositories that support
+        FTP. The &FED; repositories support both HTTP and FTP.
+      </para>
+    </tip>
+    <section id="sn-yum-proxy-server-global">
+      <title>Configuring Proxy Server Access</title>
+
+      <para>
+        To enable all <command>yum</command> operations to use a proxy
+        server, specify the proxy server details in
+        <filename>/etc/yum.conf</filename>. The <option>proxy</option>
+        setting must specify the proxy server as a complete URL,
+        including the TCP port number. If your proxy server requires a
+        username and password, specify these by adding
+        <option>proxy_username</option> and
+        <option>proxy_password</option> settings.
+      </para>
+
+      <para>
+        The settings below enable <command>yum</command> to use the
+        proxy server
+        <systemitem
+	class="systemname">mycache.mydomain.com</systemitem>,
+        connecting to port 3128, with the username
+        <systemitem
+	class="username">yum-user</systemitem> and the
+        password <systemitem>qwerty</systemitem>.
+      </para>
+
+      <example id="config-file-httpproxy">
+        <title>Configuration File Settings for Using A Proxy Server</title>
+<screen>
+<computeroutput># The proxy server - proxy server:port number
+proxy=http://mycache.mydomain.com:3128
+# The account details for yum connections
+proxy_username=yum-user
+proxy_password=qwerty</computeroutput>
+</screen>
+      </example>
+
+      <note>
+        <title>Global Settings</title>
+
+        <para>
+          If you define a proxy server in
+          <filename>/etc/yum.conf</filename>, <emphasis>all</emphasis>
+          users connect to the proxy server with those details when
+          using <command>yum</command>.
+        </para>
+      </note>
+    </section>
+
+    <section id="sn-yum-proxy-server-peruser">
+      <title>Configuring Proxy Server Access for a Single User</title>
+
+      <para>
+        To enable proxy access for a specific user, add the lines in the
+        example box below to the user's shell profile. For the default
+        <command>bash</command> shell, the profile is the file
+        <filename>~/.bash_profile</filename>. The settings below enable
+        <command>yum</command> to use the proxy server
+        <systemitem
+	class="systemname">mycache.mydomain.com</systemitem>,
+        connecting to port 3128.
+      </para>
+
+      <example id="profile-script-httpproxy">
+        <title>Profile Settings for Using a Proxy Server</title>
+<screen>
+<computeroutput># The Web proxy server used by this account
+http_proxy="http://mycache.mydomain.com:3128"
+export http_proxy</computeroutput>
+</screen>
+      </example>
+
+      <para>
+        If the proxy server requires a username and password, add these
+        to the URL. To include the username
+        <systemitem class="username">yum-user</systemitem> and the
+        password <systemitem>qwerty</systemitem>, add these settings:
+      </para>
+
+      <example id="profile-script-httpproxy-withpassword">
+        <title>Profile Settings for a Secured Proxy Server</title>
+<screen>
+<computeroutput># The Web proxy server, with the username and password for this account
+http_proxy="http://yum-user:qwerty@mycache.mydomain.com:3128"
+export http_proxy</computeroutput>
+</screen>
+      </example>
+
+      <note>
+        <title>The <option>http_proxy</option> Environment Variable</title>
+
+        <para>
+          The <command>http_proxy</command> environment variable is also
+          used by <command>curl</command> and other utilities. Although
+          <command>yum</command> itself may use
+          <command>http_proxy</command> in either upper-case or
+          lower-case, <command>curl</command> requires the name of the
+          variable to be in lower-case.
+        </para>
+      </note>
+    </section>
+  </section>
+
+<!-- SE: This is at the end of the document, since it looks out of place in section 1 -->
+
+  <section id="sn-acknowledgments">
+    <title>Acknowledgments</title>
+
+    <para>
+      Paul Frields edited this document. Timothy Murphy reviewed the
+      beta release.
+    </para>
+  </section>
+
+  <index id="generated-index"></index>
+</article>
+
+<!--
+Local variables:
+mode: xml
+fill-column: 72
+End:
+-->


More information about the docs-commits mailing list