yum-software-management yum-software-management-en.xml,1.7,1.8

Stuart Ellis (elliss) fedora-docs-commits at redhat.com
Sun Jul 17 21:19:58 UTC 2005


Author: elliss

Update of /cvs/docs/yum-software-management
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv18824

Modified Files:
	yum-software-management-en.xml 
Log Message:

Sync working copy with CVS.  Overwrites previous commit.
- Restructured to draw together common elements of yum operations.
- Added initial package groups support.
- New layout, may be less than optimal.
- Lots of minor amendments.



Index: yum-software-management-en.xml
===================================================================
RCS file: /cvs/docs/yum-software-management/yum-software-management-en.xml,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- yum-software-management-en.xml	17 Jul 2005 17:28:53 -0000	1.7
+++ yum-software-management-en.xml	17 Jul 2005 21:19:55 -0000	1.8
@@ -4,7 +4,7 @@
 <!ENTITY % FEDORA-ENTITIES-EN SYSTEM "../docs-common/common/fedora-entities-en.ent">
 %FEDORA-ENTITIES-EN;
 
-<!ENTITY BOOKID "yum-software-management-0.5.0 (2005-07-09)"> <!-- change version of manual and date here -->
+<!ENTITY BOOKID "yum-software-management-0.5.0 (2005-07-17)"> <!-- change version of manual and date here -->
 
 <!ENTITY LEGALNOTICE SYSTEM "../docs-common/common/legalnotice-en.xml">
 
@@ -40,74 +40,86 @@
           </para>
         </revdescription>
       </revision>
+      <revision>
+        <revnumber>0.5</revnumber>
+        <date>2005-07-17</date>
+        <authorinitials>StuartEllis</authorinitials>
+        <revdescription>
+          <para>
+            Updated for &FC; &FCLOCALVER;.
+          </para>
+        </revdescription>
+      </revision>
     </revhistory>
   </articleinfo>
 
   <section id="sn-introduction">
     <title>Introduction</title>
     &DRAFTNOTICE;
-    <section id="sn-purpose">
-      <title>Purpose</title>
-
-      <para>
-	This tutorial 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 tutorial is intended for &FED; users of all experience
-	levels.
+        The <command>yum</command> utility is currently the recommended
+        method for managing software on &FED; systems. All &FED; users
+        responsible for maintaining their own systems will find
+        <command>yum</command> an essential tool.
       </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.  If you are an
-	experienced Linux user, start with <xref
-	linkend="sn-updating-your-system"/>.
+        your needs and level of experience.
+      </para>
+
+      <para>
+        If you are a new user, read the
+        <xref
+      linkend="sn-software-management-concepts"/> before
+        using <command>yum</command> for the first time.
       </para>
 
       <para>
-        If you have several &FED; systems on a network, you may benefit
-	from setting up your own software repositories to manage the
-	process of installation and updates. Refer to
-        <xref linkend="sn-managing-repositories"/> for details of
-	maintaining your own repositories.
+        Experienced Linux users should start with
+        <xref linkend="sn-updating-your-system"/>.
+      </para>
+
+      <para>
+        Anyone with several &FED; systems on a network may benefit from
+        setting up their own software repositories to manage the process
+        of installation and updates. The details of maintaining your own
+        repositories are explained in
+        <xref linkend="sn-managing-repositories"/>.
       </para>
 
       <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>.
+        <filename>tsclient</filename>, which is included with &FC; to
+        provide an application for remote desktop access. If it is
+        installed 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>.
       </para>
 
       <important>
         <title>Avoid Logging in with the Root Account</title>
 
         <para>
-          You do not need to log in with the root account in order to
-	  manage your &FC; system. Any commands in this tutorial which
-	  require root access will prompt you for the root password. The
-	  procedures use the command <command>su
-	    <option>-c</option></command> to provide this facility.
+          You do not need to log in with the
+          <systemitem class="username">root</systemitem> account in
+          order to manage your &FC; 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>
     </section>
@@ -115,45 +127,45 @@
     <section id="sn-yum-additional-resources">
       <title>Additional Resources</title>
       <indexterm>
-        <primary>yum</primary>
-	<secondary>documentation</secondary>
+        <primary>yum, documentation</primary>
       </indexterm>
       <indexterm>
-        <primary>yum</primary>
-	<secondary>man pages</secondary>
+        <primary>yum, man pages</primary>
       </indexterm>
       <para>
         The <command>yum</command> utility has features and options that
-	are 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>
-
-      <remark role="fixme">If you want to use a para for the next bit,
-	use sentences and graft them together.  Otherwise, you can use a
-	variablelist, or an itemizedlist. [PWF]</remark>
-
-      <indexterm>
-        <primary>yum</primary>
-	<secondary>home page</secondary>
-      </indexterm>
-      <para>
-        The official home page for <command>yum</command> on the World
-	Wide Web is <ulink url="http://linux.duke.edu/projects/yum/"/>.
-	<indexterm>
-	  <primary>yum</primary>
-	  <secondary>mailing lists</secondary>
-	</indexterm> The official mailing list for
-	<command>yum</command> users is at <ulink
-	  url="https://lists.dulug.duke.edu/mailman/listinfo/yum/"/>.
-	The archive for the <command>yum</command> development mailing
-	list is at <ulink
-	  url="https://lists.dulug.duke.edu/pipermail/yum-devel/"/>.
+        are 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.
+      </para>
+      <indexterm>
+        <primary>yum, Websites</primary>
+      </indexterm>
+      <para>
+        The official Website for <command>yum</command> is:
+      </para>
+
+      <para>
+        <ulink url="http://linux.duke.edu/projects/yum/">http://linux.duke.edu/projects/yum/</ulink>
+      </para>
+      <indexterm>
+        <primary>yum, mailing lists</primary>
+      </indexterm>
+      <para>
+        The official mailing list for <command>yum</command> users is:
+      </para>
+
+      <para>
+        <ulink url="https://lists.dulug.duke.edu/mailman/listinfo/yum/">https://lists.dulug.duke.edu/mailman/listinfo/yum/</ulink>
+      </para>
+
+      <para>
+        The archive for the <command>yum</command> development mailing
+        list is here:
+      </para>
+
+      <para>
+        <ulink url="https://lists.dulug.duke.edu/pipermail/yum-devel/">https://lists.dulug.duke.edu/pipermail/yum-devel/</ulink>
       </para>
     </section>
   </section>
@@ -164,129 +176,128 @@
     <section id="sn-about-packages">
       <title>About Packages</title>
       <indexterm>
-        <primary>packages</primary>
-	<secondary>defined</secondary>
+        <primary>packages, defined</primary>
       </indexterm>
       <para>
-        &FED; software and documentation is supplied in the form of RPM
-	<firstterm>packages</firstterm>. Each package is a compressed
-	archive which contains 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.
+        All of the software and documentation prepared for use with
+        &FED; 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. These files are used by
+        management applications 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 with
-	a GPG <firstterm>public key</firstterm>. The
-	<command>yum</command> and <command>rpm</command> utilities
-	share a common <firstterm>keyring</firstterm> which stores all
-	public keys for the package sources approved by the system
-	administrator.
+        This digital signature is verified by software management
+        utilities by using a GPG <firstterm>public key</firstterm>. Both
+        the <command>yum</command> and <command>rpm</command> utilities
+        share a common <firstterm>keyring</firstterm> that stores all of
+        the public keys for the package sources approved by the system
+        administrator.
       </para>
     </section>
 
     <section id="sn-about-repositories">
       <title>About Repositories</title>
       <indexterm>
-        <primary>repositories</primary>
-	<secondary>defined</secondary>
+        <primary>repositories, defined</primary>
       </indexterm>
       <para>
-        A <firstterm>repository</firstterm> is a directory which
-	contains prepared files which refer to software packages.
-	Software management utilities such as <command>yum</command>
-	automatically locate and obtain the correct RPM packages for an
-	application from these <firstterm>repositories</firstterm>. This
-	method frees you from having to manually find and install new
-	applications or updates. You may use a single command to update
-	all of your system's software, or search for new software by
-	specifying criteria. In each case, the management utility
-	connects to the configured repositories and checks files in each
-	one to find the correct packages.
-      </para>
-
-      <para>
-        If you use repositories, you always receive the current version
-	of the software. If several versions of the same package are
-	available, your management utility automatically selects the
-	latest version.
-      </para>
-
-      <para>
-        For these reasons, you should only manually install software
-	when you are confident that no repository can currently provide
-	it. If a piece of installed software is not available from a
-	repository, you cannot automatically find or install newer
-	versions. You must keep that product updated manually.
+        Software management utilities like <command>yum</command>
+        automatically locate and obtain the correct RPM packages for an
+        application from <firstterm>repositories</firstterm>, which are
+        prepared directories or Websites. This method frees you from
+        having to manually find and install new applications or updates:
+        you may use a single command to update all of the software that
+        makes up your system, or to search for new software by
+        specifying criteria. In each case the management utility
+        connects to the repositories that it is configured to use, and
+        checks the indexes that they provide to find the correct
+        packages.
       </para>
 
       <para>
         The package management utilities in &FC; are automatically
-	configured to use the network of repository servers maintained
-	by the &FP;. These repositories contain the software included
-	with &FC;, and a large selection of additional software known as
-	&FEX;. Third-party software developers also provide repositories
-	for their &FED; compatible packages.
+        configured to use the network of repository servers maintained
+        by the &FP;. These repositories hold both the software included
+        with &FC;, and a large selection of additional software, known
+        as &FEX;. Third-party software developers also provide
+        repositories for their &FED; compatible packages.
       </para>
 
-      <remark role="fixme">Use the terminology from the &FP; web site.
-	Personally, I have no quibble with "free" vs. "open source"
-	software, but rule #1 is to be consistent across the whole
-	project. Since the web site says "open source," let's use
-	that. [PWF]</remark>
-
       <note>
-        <title>Open Source Software</title>
+        <title>All &FED; Packages are Free Software</title>
 
         <para>
-          All of the software provided by the &FP; is open source
-	  software.  For more information about open source software,
-	  refer to <ulink url="http://www.opensource.org/"/>.
+          All of the software provided by the &FP; is Free Software, or
+          Open Source, and can therefore be downloaded and installed
+          from the network of &FED; repositories without restrictions.
         </para>
       </note>
+      <indexterm>
+        <primary>package groups, defined</primary>
+      </indexterm>
+      <para>
+        You may also manage related packages as sets by using the
+        <firstterm>package groups</firstterm> provided by the &FED;
+        repositories. Third-party repositories organize their packages
+        into additional groups where necessary.
+      </para>
+<!-- SE: Some repositories use groups and some don't: I've tried to put this nicely. -->
+      <para>
+        Using repositories ensures that you always receive the current
+        version of the software. If several versions of the same package
+        are available then your management utility automatically selects
+        the latest version.
+      </para>
+
+      <para>
+        For all of these reasons you should only manually install
+        software when you are confident that there is no repository that
+        can currently provide it. If a piece of software on your system
+        is not available from a repository then no update feature can
+        automatically find or install newer versions, and you must keep
+        that product updated yourself.
+      </para>
     </section>
 
     <section id="sn-about-dependencies">
       <title>About Dependencies</title>
       <indexterm>
-        <primary>dependencies</primary>
-	<secondary>defined</secondary>
+        <primary>dependencies, defined</primary>
       </indexterm>
       <para>
         You must consider package <firstterm>dependencies</firstterm>
-        when manually installing software. For RPM software, a
-        dependency is a capability provided by one package on which
-        other packages rely. Some programs rely on external shared
-        <firstterm>libraries</firstterm> to run properly. If a library
-        is provided by an external package, that package may be a
-        dependency for numerous other packages.
+        when manually installing software. To avoid conflicts and
+        inconsistencies Linux distributions supply program library files
+        as separate packages to the applications that use their
+        functions. Many libraries and command-line utilities are used by
+        multiple applications.
       </para>
 
       <para>
         Management tools like <command>yum</command> use the information
-	on dependencies stored within packages to ensure that all of the
-	requirements are met when you install an application. The
-	<command>yum</command> utility installs all required packages
-	which are 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.
+        on dependencies stored within packages to ensure that all of the
+        requirements are met when you install an application. The
+        packages for any supporting software are automatically be
+        installed first, if they are not already present on your system.
+        If a new application has requirements that conflict with
+        existing software then the installation process safely 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>
+        <primary>packages, hardware compatibility</primary>
       </indexterm>
       <indexterm>
-        <primary>packages</primary>
-	<secondary>naming</secondary>
+        <primary>packages, naming</primary>
       </indexterm>
       <para>
         Each package file has a long name that indicates several key
@@ -297,19 +308,17 @@
 <filename>tsclient-0.132-4.i386.rpm</filename>
 </screen>
       <para>
-        Use only the name of the package itself with
-	<command>yum</command>, except when it is necessary to specify
-	the exact version or type. <remark role="fixme">When exactly is
-	  that necessary? Make this clear. [PWF]</remark> To specify the exact
-	version of the application, use
-	<filename>name-version</filename>. The package listings provided
-	by <command>yum</command> use the format
-	<filename>name.architecture</filename>, to specify the type of
-	computer for which the package is intended.
+        Use just the name of the package itself with
+        <command>yum</command>, except when it is necessary to specify
+        the exact version or type. To specify the exact version of the
+        application, use <filename>name-version</filename>. The package
+        listings provided by <command>yum</command> itself use the
+        format <filename>name.architecture</filename>, to specify the
+        type of computer that the package is intended for.
       </para>
 
       <para>
-        These properties are valid for the file shown above:
+        These are valid for the file shown above:
       </para>
 
       <itemizedlist>
@@ -334,34 +343,24 @@
 
       <para>
         The hardware architecture is the <emphasis>minimum</emphasis>
-	type of machine required for that specific package. Packages
-	with architecture <option>i386</option> run on any current
-	Intel-compatible computer. Packages for PowerPC machines, such
-	as Apple Macs, are indicated with <option>ppc</option>. Packages
-	with architecture <option>noarch</option> have no architecture
-	requirement.
+        type of machine required for that specific package. Packages for
+        <option>i386</option> run on any current Intel-compatible
+        computer. Packages for PowerPC machines, such as Apple Macs, are
+        indicated with <option>ppc</option>. Packages specified as
+        <option>noarch</option> have no architecture requirement.
       </para>
 
       <para>
-        Some software can be optimized for particular types of
-	Intel-compatible machine, and separate packages may be provided
-	for <option>i386</option>, <option>i586</option>,
-	<option>i686</option> and <option>x86_64</option>. A computer
-	with at least an Intel Pentium, VIA C3 or compatible CPU is an
-	<option>i586</option>. Computers with an Intel Pentium II or
-	later, or a current model of AMD chip, are <option>i686</option>
-	machines. 64-bit PCs use <option>x86_64</option> packages for
-	full 64-bit support.
+        Some software may be optimized for particular types of
+        Intel-compatible machine. For these products, separate packages
+        are 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
+        chip is an <option>i586</option>. Computers with an Intel
+        Pentium II and above, or a current model of AMD chip, are
+        <option>i686</option> machines. 64-bit PCs use
+        <option>x86_64</option> packages for full 64-bit support.
       </para>
-
-      <note>
-        <title>Other Naming Conventions are Supported</title>
-
-        <para>
-          Refer to <xref linkend="sn-searching-packages-byname"/> for
-          more information on specifying packages by name or type.
-        </para>
-      </note>
     </section>
   </section>
 
@@ -371,7 +370,7 @@
       <primary>Add/Remove Applications utility</primary>
     </indexterm>
     <indexterm>
-      <primary>Alert Icon</primary>
+      <primary>alert icon</primary>
     </indexterm>
     <indexterm>
       <primary>up2date</primary>
@@ -383,54 +382,40 @@
     </para>
 
     <para>
-      On your desktop is an <application>Alert Icon</application> that
+      On your desktop is an <application>alert icon</application> that
       keeps you informed about package updates. Until your system is
-      updated, the icon appears as a red circle with a flashing
-      exclamation mark. The <application>Alert Icon</application> is
-      integrated with <application>up2date</application>, which enables
-      you to easily install updates for your system.
+      updated this appears as a red circle with a flashing exclamation
+      mark. The alert icon is integrated with
+      <application>up2date</application>, which enables you to easily
+      install updates for your system.
     </para>
 
     <para>
       Both <application>up2date</application> and <command>yum</command>
       are configured to use official &FED; repositories. If you add
-      other repositories to <command>yum</command>, for consistency
+      other repositories to <command>yum</command> then for consistency
       you should also configure <application>up2date</application> to
       use them.
     </para>
 
-    <note>
-      <title>Repository Configuration</title>
-      <para>
-	In &FC; 4 and beyond, <application>up2date</application> is
-	configured to automatically use repositories configured for
-	<command>yum</command>.  If you configure any new repositories
-	for <command>yum</command>, <application>up2date</application>
-	will use them also.
-      </para>
-    </note>
-
     <para>
       Also included in &FC; is
-      <application>system-config-packages</application>. To run this
-      utility, rom the <guilabel>Main Menu</guilabel>, select
-      <menuchoice><guimenu>System
-	  Settings</guimenu><guimenuitem>Add/Remove
-	  Applications</guimenuitem></menuchoice>. Unlike
-      <application>up2date</application> and <command>yum</command>,
-      this utility installs software packages from your &FC;
-      installation discs, and does not use repositories. This
-      application is used on systems that do not have a network
-      connection.
+      <application>system-config-packages</application>. From the main
+      menu, this is <menuchoice><guimenu>System
+      Settings</guimenu><guimenuitem>Add/Remove
+      Applications</guimenuitem></menuchoice>. Unlike
+      <application>up2date</application> and <command>yum</command>, it
+      installs software packages from your &FC; installation discs, and
+      does not use repositories. You may find this application useful
+      for systems that do not have a network connection.
     </para>
 
     <para>
       The <command>rpm</command> command-line utility has many functions
-      for working with individual RPM packages. The
-      <command>rpm</command> command can also be used to manually
-      install and remove packages from your system. Installing software
-      with the <command>rpm</command> utility can be difficult for
-      novices, and is not recommended.
+      for working with individual RPM packages, and may also be used to
+      manually install and remove packages from your system. Installing
+      software with the <command>rpm</command> utility requires you to
+      manually check and install the dependencies of the software.
     </para>
 
     <caution>
@@ -445,100 +430,264 @@
     </caution>
   </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>
+  <section id="sn-managing-packages">
+    <title>Managing Software with <command>yum</command></title>
     <indexterm>
-      <primary>yum</primary>
-      <secondary>updating full system</secondary>
+      <primary>yum, package management</primary>
     </indexterm>
-    
-    <remark role="fixme">Your original paragraph below was: "You may
-      update all of the software that makes up your &FC; system in a
-      single operation. This is done with the <option>update</option>
-      function." Remember this should be a procedural tutorial, so focus
-      on telling the user what to do. In technical docs "To ABC, do XYZ"
-      is much more effective than "You may do XYZ if you want to ABC."
-      It's also easier to translate, and keeps you from slipping into
-      passive voice. [PWF]</remark> 
-
-    <para>
-      To update all of your &FED; system's software in a single
-      operation, select <menuchoice>
-	<guimenu>Applications</guimenu>
-	<guisubmenu>System Tools</guisubmenu>
-	<guimenuitem>Terminal</guimenuitem>
-      </menuchoice> and type:
+    <para>
+      The <command>yum</command> utility may modify the software on your
+      system in three ways:
     </para>
-<screen>
-<userinput>su -c 'yum update'</userinput>
-</screen>
+
     <para>
-      Enter the password for the <systemitem
-	class="username">root</systemitem> account when prompted.
+      <itemizedlist>
+        <listitem>
+          <para>
+            By installing new software from repositories or a package
+            file.
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            By updating existing software on your system.
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+            By removing unwanted software from your system.
+          </para>
+        </listitem>
+      </itemizedlist>
     </para>
 
-<!-- MARKER - LAST EDITS - PWF -->
-<!-- start worrying about passive voice below! -->
+    <para>
+      In each case you must specify the function and the criteria, such
+      as the name of the package or package group. Simple examples are
+      given in each section.
+    </para>
+    <tip>
+      <title>Package Names</title>
+      <para>
+        You may use any of the following formats for specifying a
+        package in a <command>yum</command> operation:
+        <filename>name</filename>,
+        <filename>name.architecture</filename>,
+        <filename>name-version</filename>,
+        <filename>name-version-release</filename>,
+        <filename>name-version-release.architecture</filename>, and
+        <filename>epoch:name-version-release.architecture</filename>.
+      </para>
+    </tip>
+    <para>
+      To use the repositories <command>yum</command> downloads data
+      files from each of the repositories that it is configured to use.
+      On a slow connection downloading the repository index files and
+      the <firstterm>header</firstterm> file for each package may take
+      several seconds to complete.
+    </para>
 
     <para>
-      Data files are downloaded from each of the repositories that
-      <command>yum</command> is configured to use. These index and
-      header files are searched for information about newer versions of
-      packages. On a slow connection the download process may take
-      several seconds.
+      When installing, updating or removing software,
+      <command>yum</command> first determines the best set of actions to
+      produce the required result, and displays the transaction for you
+      to approve. This may include installing, updating or removing
+      other packages in addition to the package that you specified, in
+      order to resolve the dependencies of the software.
     </para>
 
     <para>
-      A list of all of the available updates for your system is
-      displayed. Press <userinput>y</userinput> to accept the updates.
-      If you accept the updates the relevant packages are then
-      downloaded and installed.
+      As an example, this is 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>
+    <para>
+      Review the list of changes before pressing
+      <userinput>y</userinput> to accept and begin the process. No
+      packages are downloaded or changed if you press
+      <userinput>n</userinput>.
     </para>
 
-    <section id="sn-automatic-updating">
-      <title>Automatically Updating Your System</title>
+    <note>
+      <title>Package Versions</title>
+
+      <para>
+        Only the newest version of each package is displayed and used by
+        <command>yum</command>, unless you specify an older version of a
+        package.
+      </para>
+    </note>
+    <tip>
+      <title>Downloads are Cached</title>
+      <para>
+        Downloaded data files and packages are kept for reuse. You may
+        copy packages from the repository cache directories under
+        <filename>/var/cache/yum/</filename>, and use them elsewhere if
+        you wish. Removing a package from the cache does not affect the
+        copy of the software installed on your system.
+      </para>
+    </tip>
+    <section id="sn-yum-installing-withrepositories">
+      <title>Installing New Software with <command>yum</command></title>
       <indexterm>
-        <primary>automatic updating</primary>
+        <primary>installing software with yum</primary>
+      </indexterm>
+      <indexterm>
+        <primary>software, installing</primary>
       </indexterm>
       <para>
-        If your system is permanently connected to the network then
-        updates can be performed at any time. The
-        <filename>yum</filename> package includes scripts that can
-        automatically carry out full updates every day.
+        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 <systemitem class="username">root</systemitem>
+        password when prompted.
       </para>
 
       <para>
-        To activate automatic daily updating, type this line:
+        To install the package group <filename>MySQL
+        Database</filename>, enter the command:
       </para>
 <screen>
-<userinput>su -c '/sbin/chkconfig --level 345 yum on; /sbin/service yum start'</userinput>
+<userinput>su -c 'yum groupinstall "<replaceable>MySQL Database</replaceable>"'</userinput>
+</screen>
+      <para>
+        Enter the <systemitem class="username">root</systemitem>
+        password when prompted.
+      </para>
+
+      <important>
+        <title>New Services Require Activation</title>
+
+        <para>
+          Installing a service 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 run
+          <command>chkconfig</command> in a terminal window.
+        </para>
+      </important>
+    </section>
+
+    <section id="sn-yum-updating-withrepositories">
+      <title>Updating Software with <command>yum</command></title>
+      <indexterm>
+        <primary>updating software with yum</primary>
+      </indexterm>
+      <indexterm>
+        <primary>software, updating</primary>
+      </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 <systemitem class="username">root</systemitem>
+        password when prompted.
+      </para>
+
+      <important>
+        <title>New Software Versions Require Reloading</title>
+
+        <para>
+          If a piece of software is use whilst it is updated then the
+          old version remains active until the software is next loaded.
+          Services are reloaded by restarting the service. Kernel
+          updates take effect the next time that the system is booted.
+        </para>
+      </important>
+
+      <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 root password when prompted.
+        Enter the <systemitem class="username">root</systemitem>
+        password when prompted.
       </para>
 
       <note>
-        <title>How Daily Updates are Run</title>
+        <title>Updating the Entire System</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>, so that the
-          <command>cron</command> service will perform the system update
-          as one of the tasks that are automatically run each day.
+          To update all of the packages that make up 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 with yum</primary>
+      </indexterm>
+      <indexterm>
+        <primary>software, removing</primary>
+      </indexterm>
+      <para>
+        To remove software, <command>yum</command> examines your system
+        for both the specified software, and any other software that
+        must also be removed in order to safely uninstall it.
+      </para>
+
+      <para>
+        To remove the <filename>tsclient</filename> package from your
+        system the full command is:
+      </para>
+<screen>
+<userinput>su -c 'yum remove <replaceable>tsclient</replaceable>'</userinput>
+</screen>
+      <para>
+        Enter the <systemitem class="username">root</systemitem>
+        password 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 <systemitem class="username">root</systemitem>
+        password when prompted.
+      </para>
+    </section>
   </section>
 
   <section id="sn-searching-packages">
-    <title>Searching for Software with <command>yum</command></title>
+    <title>Searching with <command>yum</command></title>
     <indexterm>
       <primary>packages, locating</primary>
     </indexterm>
@@ -563,6 +712,12 @@
       </para>
     </note>
 
+    <para>
+      The format of the results depends upon the option. If the query
+      produces no information then no packages matching the criteria
+      have been found.
+    </para>
+
     <section id="sn-searching-packages-byname">
       <title>Searching by Package Name and Attributes</title>
 
@@ -582,19 +737,6 @@
 <screen>
 <userinput>yum list <replaceable>tsclient-0.132</replaceable></userinput>
 </screen>
-      <tip>
-        <title>Package Attributes</title>
-        <para>
-          You may use any of the following formats for specifying a
-          package in a <command>yum</command> query:
-          <filename>name</filename>,
-          <filename>name.architecture</filename>,
-          <filename>name-version</filename>,
-          <filename>name-version-release</filename>,
-          <filename>name-version-release.architecture</filename>, and
-          <filename>epoch:name-version-release.architecture</filename>.
-        </para>
-      </tip>
     </section>
 
     <section id="sn-searching-packages-advanced">
@@ -663,204 +805,176 @@
         <filename>shadow-util?</filename> or
         <filename>Shadow*</filename>.
       </para>
-
-      <para>
-        When several versions of the same package are available, only
-        the newest is used.
-      </para>
     </section>
   </section>
 
-  <section id="sn-managing-packages">
-    <title>Managing Software with <command>yum</command></title>
+  <section id="sn-updating-your-system">
+    <title>Updating Your System with <command>yum</command></title>
     <indexterm>
-      <primary>yum, package management</primary>
+      <primary>updating, full system</primary>
+    </indexterm>
+    <indexterm>
+      <primary>yum, updating full system</primary>
     </indexterm>
     <para>
-      The <command>yum</command> utility has four basic management
-      functions:
+      Use the <option>update</option> option to upgrade all of the
+      software on your &FED; system to the latest version with one
+      operation.
     </para>
 
     <para>
-      <itemizedlist>
-        <listitem>
-          <para>
-            <option>install</option> new software from the repositories.
-          </para>
-        </listitem>
-        <listitem>
-          <para>
-            <option>update</option> existing software.
-          </para>
-        </listitem>
-        <listitem>
-          <para>
-            <option>remove</option> unwanted software.
-          </para>
-        </listitem>
-        <listitem>
-          <para>
-            <option>localinstall</option>, to install software from a
-            individual package.
-          </para>
-        </listitem>
-      </itemizedlist>
+      To carry out a full system update, type this command in a terminal
+      window:
     </para>
-
+<screen>
+<userinput>su -c 'yum update'</userinput>
+</screen>
     <para>
-      In each case you must specify the function and the criteria. Some
-      simple examples are given in each section.
+      Enter the <systemitem class="username">root</systemitem> password
+      when prompted.
     </para>
 
-    <note>
-      <title>Search Criteria</title>
-
-      <para>
-        See <xref linkend="sn-searching-packages"/> for details of
-        search criteria. The management options of
-        <command>yum</command> <emphasis>are</emphasis> case-sensitive.
-      </para>
-    </note>
-
-    <para>
-      As with the search and system update functions,
-      <command>yum</command> begins the process by downloading data
-      files from each of the repositories that it is configured to use.
-      Once <command>yum</command> has determined the steps to carry out
-      the task you are presented with the proposed package changes,
-      which you can either approve or reject. By default no changes are
-      made to your system unless you approve.
-    </para>
-    <tip>
-      <title>Downloaded Packages</title>
-      <para>
-        The RPM packages downloaded and used by <command>yum</command>
-        are held in sub-directories of
-        <filename>/var/cache/yum/</filename>, with one sub-directory per
-        repository. You may copy these cached packages and use them
-        elsewhere if you wish. Removing a package from your system does
-        not delete the downloaded RPM from the cache. See
-        <xref
-        linkend="sn-yum-clearance"/> for details on
-        purging the caches.
-      </para>
-    </tip>
-    <section id="sn-yum-installing-withrepositories">
-      <title>Installing New Software with <command>yum</command></title>
-      <indexterm>
-        <primary>installing software with yum</primary>
-      </indexterm>
+    <section id="sn-automatic-updating">
+      <title>Automatically Updating Your System</title>
       <indexterm>
-        <primary>software, installing</primary>
+        <primary>automatic updating</primary>
       </indexterm>
       <para>
-        To install or update software, <command>yum</command> examines
-        the package caches on your system and each of the configured
-        package sources to determine the best set of actions to produce
-        the required result. This may include installing or updating
-        other packages in addition to the package that you specified.
+        If your system is permanently connected to the network then
+        updates can be performed at any time. The
+        <filename>yum</filename> package includes scripts that can
+        automatically carry out full updates every day.
       </para>
 
       <para>
-        To install the package <filename>tsclient</filename>, enter the
-        command:
+        To activate automatic daily updating, type this line:
       </para>
 <screen>
-<userinput>su -c 'yum install <replaceable>tsclient</replaceable>'</userinput>
+<userinput>su -c '/sbin/chkconfig --level 345 yum on; /sbin/service yum start'</userinput>
 </screen>
       <para>
-        Enter the root password when prompted.
+        Enter the <systemitem class="username">root</systemitem>
+        password when prompted.
       </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>, so that the
+          <command>cron</command> service will perform the system update
+          as one of the tasks that are automatically run each day.
+        </para>
+      </note>
     </section>
+  </section>
 
-    <section id="sn-yum-installing-frompackage">
-      <title>Installing Software from a Package with <command>yum</command></title>
-      <indexterm>
-        <primary>installing software with yum (from a package)</primary>
-      </indexterm>
-      <indexterm>
-        <primary>software, installing from a package</primary>
-      </indexterm>
-      <para>
-        Use the <option>localinstall</option> option to install software
-        from an individual package file on your system. In this mode
-        <command>yum</command> simply installs the specified package
-        without connecting to any repository. You are responsible for
-        ensuring that all of the dependencies are already installed on
-        your system.
-      </para>
+  <section id="sn-yum-proxy-server">
+    <title>Using <command>yum</command> with a Proxy Server</title>
+    <indexterm>
+      <primary>proxy server, with yum</primary>
+    </indexterm>
+    <indexterm>
+      <primary>yum, using a proxy server</primary>
+    </indexterm>
+    <para>
+      Repositories may be accessed through standard Web proxy servers.
+      If your system is connected to the Internet through a Web proxy
+      server, specify the details of the server in
+      <filename>/etc/yum.conf</filename>. The <command>proxy</command>
+      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
+      <command>proxy_username</command> and
+      <command>proxy_password</command> settings.
+    </para>
+
+    <para>
+      For example, the settings below enable <command>yum</command> to
+      use the proxy server <command>mycache.mydomain.com</command>,
+      connecting to port <command>3128</command>, with the username
+      <command>yum-user</command> and the password
+      <command>qwerty</command>.
+    </para>
+
+    <example id="config-file-httpproxy">
+      <title>Configuration File Settings for Using A Proxy Server</title>
+<programlisting>
+       <![CDATA[
+         # 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
+       ]]>
+      </programlisting>
+    </example>
+
+    <note>
+      <title>Global Settings</title>
 
       <para>
-        To install the package
-        <filename>tsclient-0.132-4.i386.rpm</filename>, enter the
-        command:
-      </para>
-<screen>
-<userinput>su -c 'yum localinstall <replaceable>tsclient-0.132-4.i386.rpm</replaceable>'</userinput>
-</screen>
-      <para>
-        Enter the root password when prompted.
+        Defining a proxy server in <filename>/etc/yum.conf</filename>
+        means that <emphasis>all</emphasis> users connect to the proxy
+        server with those details when using <command>yum</command>.
       </para>
+    </note>
+
+    <para>
+      To enable proxy access for a specific user, add the lines in the
+      example box below to their 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
+      <command>mycache.mydomain.com</command>, connecting to port
+      <command>3128</command>.
+    </para>
 
-      <note>
-        <title>Public Key is Required</title>
+    <example id="profile-script-httpproxy">
+      <title>Profile Settings for Using a Proxy Server</title>
+<programlisting>
+       <![CDATA[
+         # The Web proxy server used by this account
+         http_proxy="http://mycache.mydomain.com:3128"
+         export http_proxy
+       ]]>
+      </programlisting>
+    </example>
 
-        <para>
-          You must ensure that the public key for the package source has
-          been imported before installing a package without a
-          repository. Refer to
-          <xref linkend="sn-authorizing-package-sources"/>
-        </para>
-      </note>
-    </section>
+    <para>
+      If the proxy server requires a username and password then add
+      these to the URL. For example, to include the username
+      <command>yum-user</command> and the password
+      <command>qwerty</command>:
+    </para>
 
-    <section id="sn-yum-updating-withrepositories">
-      <title>Updating Software with <command>yum</command></title>
-      <indexterm>
-        <primary>updating software with yum</primary>
-      </indexterm>
-      <indexterm>
-        <primary>software, updating</primary>
-      </indexterm>
-      <para>
-        Updating a software package follows the same process as
-        installing a new package. For example, 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 root password when prompted.
-      </para>
-    </section>
+    <example id="profile-script-httpproxy-withpassword">
+      <title>Profile Settings for a Secured Proxy Server</title>
+<programlisting>
+       <![CDATA[
+         # 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
+       ]]>
+      </programlisting>
+    </example>
 
-    <section id="sn-yum-removing-software">
-      <title>Removing Software with <command>yum</command></title>
-      <indexterm>
-        <primary>removing software with yum</primary>
-      </indexterm>
-      <indexterm>
-        <primary>software, removing</primary>
-      </indexterm>
-      <para>
-        To remove software, <command>yum</command> examines your system
-        for both the specified software, and any other software that
-        must also be removed in order to safely uninstall it.
-      </para>
+    <note>
+      <title><command>http_proxy</command> Variable with Other Utilities</title>
 
       <para>
-        To remove the <filename>tsclient</filename> package from your
-        system the full command is:
-      </para>
-<screen>
-<userinput>su -c 'yum remove <replaceable>tsclient</replaceable>'</userinput>
-</screen>
-      <para>
-        Enter the root password when prompted.
+        The <command>http_proxy</command> 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>
-    </section>
+    </note>
   </section>
 
   <section id="sn-using-repositories">
@@ -875,36 +989,30 @@
       <primary>searching for repositories</primary>
     </indexterm>
     <para>
-      Projects and individuals that provide RPM packages through
-      <command>yum</command> repositories will provide details on their
-      Website. The &FEX; project is the official source for additional
-      packages.
-    </para>
-
-    <para>
-      The Website for &FEX; is here:
-    </para>
-
-    <para>
-      <ulink url="http://fedora.redhat.com/projects/extras/">http://fedora.redhat.com/projects/extras/</ulink>
+      &FC; automatically uses the &FED; repositories. These include
+      &FEX;, the default source of packages for software that is not
+      included with &FC;.
     </para>
 
     <note>
-      <title>Repositories for Early Versions of &FC;</title>
+      <title>&FEX; Repositories for Previous Versions of &FC;</title>
 
       <para>
-        &FEX; does not provides packages for &FC; 2 or earlier. The
-        official Website for additional packages for &FC; 1 and &FC; 2
-        is:
-        <ulink url="http://www.fedora.us/">http://www.fedora.us/</ulink>
+        You must manually configure &FC; 3 systems to use &FEX;, using
+        the instructions at:
+        <ulink url="http://fedora.redhat.com/projects/extras/">http://fedora.redhat.com/projects/extras/</ulink>.
+        Refer to this Website for additional packages for &FC; 1 and
+        &FC; 2:
+        <ulink url="http://www.fedora.us/">http://www.fedora.us/</ulink>.
       </para>
     </note>
 
     <para>
-      You should use these sites for software that is not included with
-      &FC;. If these sites do not provide packages for a specific piece
-      of software, the manufacturer of the software may provide or
-      recommend a repository.
+      If the &FED; project does not provide packages for a specific
+      piece of software, the manufacturer of the software may provide or
+      recommend a separate repository. Members of the community also
+      maintain repositories to provide packages for &FED; systems.
+      Third-party repositories provide information on their Websites.
     </para>
 
     <section id="sn-adding-repositories">
@@ -916,9 +1024,7 @@
         <primary>repository definition files, installing</primary>
       </indexterm>
       <para>
-        &FC; includes a <filename>yum</filename> package that has &FED;
-        repositories in the configuration. To add an extra repository,
-        place a definition file in the
+        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 Websites.
@@ -931,15 +1037,17 @@
         </para>
       </tip>
       <para>
-        Adding a file to the definitions directory requires root access.
-        To copy the definition file <filename>example.repo</filename>,
-        type the command:
+        Adding a file to the definitions directory requires
+        <systemitem class="username">root</systemitem> access. To copy
+        the definition file <filename>example.repo</filename>, type the
+        command:
       </para>
 <screen>
 <userinput>su -c 'cp example.repo /etc/yum.repos.d/'</userinput>
 </screen>
       <para>
-        Enter the root password when prompted.
+        Enter the <systemitem class="username">root</systemitem>
+        password when prompted.
       </para>
 
       <para>
@@ -955,9 +1063,11 @@
         <title>Repositories and <application>up2date</application> Channels</title>
 
         <para>
-          You should also add new package repositories as
-          <application>up2date</application> channels to ensure
-          consistency between the behavior of the two applications.
+          On &FC; &FCLOCALVER; systems <command>yum</command>
+          repositories are automatically used as
+          <application>up2date</application> channels. Repositories must
+          be separately configured as channels on &FC; 3 and earlier
+          systems.
         </para>
       </note>
     </section>
@@ -977,7 +1087,8 @@
 <userinput>su -c 'rpm --import <replaceable>GPG-PUB-KEY.asc</replaceable>'</userinput>
 </screen>
       <para>
-        Enter the root password when prompted.
+        Enter the <systemitem class="username">root</systemitem>
+        password when prompted.
       </para>
 
       <para>
@@ -1039,15 +1150,65 @@
           The data format for repository indexes changed with version
           2.11 of <command>yum</command>. This was the version supplied
           with &FC; 3. Repository providers should specify the versions
-          of &FC; that they support. All repositories compatible with
-          current versions of <command>yum</command> can also be
-          identified by the fact that they have a sub-directory called
-          <filename>repo-data/</filename>.
+          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>repo-data/</filename>.
         </para>
       </tip>
     </section>
   </section>
 
+  <section id="sn-yum-installing-frompackage">
+    <title>Manually Installing Software</title>
+    <indexterm>
+      <primary>installing software with yum (from a package)</primary>
+    </indexterm>
+    <indexterm>
+      <primary>software, installing from a package</primary>
+    </indexterm>
+    <para>
+      Use repositories and the standard <command>yum</command> commands
+      to install new software, unless the software is only available as
+      a package. In these cases, use the <option>localinstall</option>
+      option to install the software from the package file without
+      connecting to any repository.
+    </para>
+
+    <important>
+      <title>Public Key is Required</title>
+
+      <para>
+        You must ensure that the public key for the package source has
+        been imported before installing a package without a repository.
+        Refer to <xref linkend="sn-authorizing-package-sources"/>
+      </para>
+    </important>
+
+    <para>
+      As an example, 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>
+      Enter the <systemitem class="username">root</systemitem> password
+      when prompted.
+    </para>
+
+    <important>
+      <title>Dependencies Must Be Met</title>
+
+      <para>
+        You must ensure that all of the dependencies are already
+        installed on your system, as <command>yum</command> cannot
+        download additional packages to complete the installation in
+        this mode.
+      </para>
+    </important>
+  </section>
+
   <section id="sn-yum-maintenance">
     <title>Maintaining <command>yum</command></title>
 
@@ -1126,7 +1287,8 @@
 <userinput>su -c 'rpm -e <replaceable>gpg-pubkey-4f2a6fd2-3f9d9d3b</replaceable>'</userinput>
 </screen>
       <para>
-        Enter the root password when prompted.
+        Enter the <systemitem class="username">root</systemitem>
+        password when prompted.
       </para>
     </section>
 
@@ -1137,8 +1299,8 @@
       </indexterm>
       <para>
         By design, <command>yum</command> does not automatically delete
-        any of the packages or package header files that it downloads,
-        so that these can be reused. Header files accumulate over time,
+        any of the packages or package data files that it downloads, so
+        that these can be reused. The header files accumulate over time,
         and these may be purged with the command:
       </para>
 <screen>
@@ -1152,14 +1314,16 @@
 <userinput>su -c 'yum clean packages'</userinput>
 </screen>
       <para>
-        In both cases, enter the root password when prompted.
+        In both cases, enter the
+        <systemitem class="username">root</systemitem> password when
+        prompted.
       </para>
     </section>
   </section>
 
   <section id="sn-managing-repositories">
     <title>Managing <command>yum</command> Repositories</title>
-
+<!-- SE: This section is NOT finished. There is a case for not trying to cover repository administration at all in this document, in which this whole section can go to live in it's own tutorial. -->
     <para>
       You may wish to create your own software repositories, or maintain
       a copy of another repository.
@@ -1202,7 +1366,11 @@
       </note>
 
       <para>
-        To make a directory into a <command>yum</command> repository:
+        To make a directory into a <command>yum</command> repository,
+        carry the following tasks. These instructions assume that the
+        repository is the directory
+        <filename>/var/www/repository/</filename>, and that the package
+        group index file is called <filename>groups.xml</filename>:
         <orderedlist>
           <listitem>
             <para>
@@ -1212,29 +1380,43 @@
           </listitem>
           <listitem>
             <para>
+              Create a groups file, as explained in
+              <xref linkend="sn-writing-groupfiles"/>
+            </para>
+          </listitem>
+          <listitem>
+            <para>
+              Copy the groups file into the directory, alongside the
+              packages.
+            </para>
+          </listitem>
+          <listitem>
+            <para>
               Open a terminal window.
             </para>
           </listitem>
           <listitem>
             <para>
               In the terminal window type: <userinput>createrepo
-              /path/to/directory</userinput>. Substitute the path to
-              your package directory for
-              <filename>/path/to/directory/</filename>.
+              <replaceable>/var/www/repository</replaceable></userinput>.
+            </para>
+          </listitem>
+          <listitem>
+            <para>
+              In the terminal window type: <userinput>createrepo -g
+              <replaceable>/var/www/repository/groups.xml</replaceable></userinput>.
             </para>
           </listitem>
           <listitem>
             <para>
               In the terminal window type: <userinput>chmod a+x
-              /path/to/directory/repodata/</userinput>. Substitute the
-              path to your package directory for
-              <filename>/path/to/directory/</filename>.
+              <replaceable>/var/www/repository/repodata/</replaceable></userinput>.
             </para>
           </listitem>
           <listitem>
             <para>
-              Ensure that the directory is available via your chosen
-              network protocols.
+              Ensure that the directory is available with your chosen
+              network protocols (HTTP, FTP, or NFS).
             </para>
           </listitem>
         </orderedlist>
@@ -1272,6 +1454,115 @@
       </tip>
     </section>
 
+    <section id="sn-writing-groupfiles">
+      <title>Package Group Index Files</title>
+<!-- SE: This section is NOT finished. -->
+      <indexterm>
+        <primary>package group index files, creating</primary>
+      </indexterm>
+      <indexterm>
+        <primary>package group index files, editing</primary>
+      </indexterm>
+      <para>
+        Create and edit package group files with a text editor.
+        Definition files are XML with a standard format:
+      </para>
+
+      <example id="yum-groupsfile-format">
+        <title>Format of <command>yum</command> Group Index Files</title>
+<programlisting>
+      <![CDATA[
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE comps PUBLIC "-//Red Hat, Inc.//DTD Comps info//EN" "comps.dtd">
+<comps>
+  <group>
+    <id>group-id</id>
+    <name>Group Name</name>
+    <description>Descriptive Text.</description>
+    <default>true</default> or <default>false</default>
+    <uservisible>true</uservisible> or <uservisible>false</uservisible>
+    <grouplist>
+      <groupreq>group-name</groupreq>
+    </grouplist>
+    <packagelist>
+      <packagereq type="default">package-name</packagereq> or <packagereq type="optional">package-name</packagereq>
+    </packagelist>
+  </group>
+      <grouphierarchy>
+        <category>
+          <name>Category Name</name>
+          <subcategories>
+            <subcategory>Name of Member Group</subcategory>
+          </subcategories>
+        </category>
+      </grouphierarchy>
+</comps>
+      ]]>
+    </programlisting>
+      </example>
+
+      <para>
+        The <command>id</command> and <command>name</command> that
+        identify each group must either match those of a &FED; package
+        group, or be unique. If the group matches a &FED; package group
+        then systems using the repository add the the listed packages to
+        that group when carrying out <command>yum</command> operations.
+      </para>
+<!-- SE: The explanations of the XML tags need completion. The only other documentation I've found so far that actually defines the "comps" XML format is three years old, and written for RH8. Joy ! -->
+      <para>
+        The example group file shown below defines the package groups
+        <filename>Base</filename> and <filename>Site Custom Application
+        Packages</filename>. The <filename>Base</filename> package group
+        adds extra mandatory packages to the &FED; package group for the
+        systems using the repository. <filename>Site Custom Application
+        Packages</filename> provides three packages.
+      </para>
+
+      <example id="yum-groupsfile-example">
+        <title>Example <command>yum</command> Group Index File</title>
+<programlisting>
+      <![CDATA[
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE comps PUBLIC "-//Red Hat, Inc.//DTD Comps info//EN" "comps.dtd">
+<comps>
+  <group>
+    <id>base</id>
+    <name>Base</name>
+    <description>Additional packages for the Fedora Base package group.</description>
+    <default>true</default>
+    <uservisible>true</uservisible>
+    <packagelist>
+      <packagereq type="default">my-customadminpackage</packagereq>
+      <packagereq type="default">my-othercustomadminpackage</packagereq>
+  </group>
+  <group>
+    <id>site-apps</id>
+    <name>Site Custom Application Packages</name>
+    <description>Custom group for the site-specific applications.</description>
+    <default>false</default>
+    <uservisible>true</uservisible>
+    <grouplist>
+      <groupreq>base</groupreq>
+    </grouplist>
+    <packagelist>
+      <packagereq type="default">my-customapplication</packagereq>
+      <packagereq type="optional">my-othercustomapplication</packagereq>
+      <packagereq type="optional">my-optionalcustomapplication</packagereq>
+  </group>
+      <grouphierarchy>
+        <category>
+          <name>Site Custom Packages</name>
+          <subcategories>
+            <subcategory>Site Custom Application Packages</subcategory>
+          </subcategories>
+        </category>
+      </grouphierarchy>
+</comps>
+      ]]>
+    </programlisting>
+      </example>
+    </section>
+
     <section id="sn-writing-repodefs">
       <title>Repository Definition Files</title>
       <indexterm>
@@ -1302,11 +1593,12 @@
 
       <para>
         The <command>baseurl</command> must specify the complete URL for
-        the root directory of the repository, including the
-        <command>http://</command>, <command>https://</command> or
-        <command>ftp://</command> prefix. You may also specify a
-        directory on your system, by using the prefix
-        <command>file://</command> in the <command>baseurl</command>.
+        the <systemitem class="username">root</systemitem> directory of
+        the repository, including the <command>http://</command>,
+        <command>https://</command> or <command>ftp://</command> prefix.
+        You may also specify a directory on your system, by using the
+        prefix <command>file://</command> in the
+        <command>baseurl</command>.
       </para>
       <tip>
         <title>Logging in to Protected Repositories</title>
@@ -1338,9 +1630,8 @@
       </para>
 
       <para>
-        A definition file is shown below that uses all of these
-        features. In this example, copies of the repository are held in
-        the directory
+        The definition file shown below uses all of these features. In
+        this example, copies of the repository are held in the directory
         <filename>/srv/software/&FED;/&FCVER;/mypackages/</filename> on
         the system itself, in the directory
         <filename>software/&FED;/&FCVER;/mypackages/</filename> on the
@@ -1402,116 +1693,5 @@
     </section>
   </section>
 
-  <section id="sn-yum-proxy-server">
-    <title>Using <command>yum</command> with a Proxy Server</title>
-    <indexterm>
-      <primary>proxy server, with yum</primary>
-    </indexterm>
-    <indexterm>
-      <primary>yum, using a proxy server</primary>
-    </indexterm>
-    <para>
-      Repositories may be accessed through standard proxy servers. If
-      your system is connected to the Internet through a Web proxy
-      server, specify the details of the server in
-      <filename>/etc/yum.conf</filename>. The <command>proxy</command>
-      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
-      <command>proxy_username</command> and
-      <command>proxy_password</command> settings.
-    </para>
-
-    <para>
-      For example, the settings below enable <command>yum</command> to
-      use the proxy server <command>mycache.mydomain.com</command>,
-      connecting to port <command>3128</command>, with the username
-      <command>yum-user</command> and the password
-      <command>qwerty</command>.
-    </para>
-
-    <example id="config-file-httpproxy">
-      <title>Configuration File Settings for Using A Proxy Server</title>
-<programlisting>
-       <![CDATA[
-         # 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
-       ]]>
-      </programlisting>
-    </example>
-
-    <note>
-      <title>Global Settings</title>
-
-      <para>
-        Defining a proxy server in <filename>/etc/yum.conf</filename>
-        means that <emphasis>all</emphasis> users connect to the proxy
-        server with those details when using <command>yum</command>.
-      </para>
-    </note>
-
-    <para>
-      To enable proxy access for a specific user, add the lines in the
-      example box below to their 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
-      <command>mycache.mydomain.com</command>, connecting to port
-      <command>3128</command>.
-    </para>
-
-    <example id="profile-script-httpproxy">
-      <title>Profile Settings for Using a Proxy Server</title>
-<programlisting>
-       <![CDATA[
-         # The Web proxy server used by this account
-         http_proxy="http://mycache.mydomain.com:3128"
-         export http_proxy
-       ]]>
-      </programlisting>
-    </example>
-
-    <para>
-      If the proxy server requires a username and password then add
-      these to the URL. For example, to include the username
-      <command>yum-user</command> and the password
-      <command>qwerty</command>:
-    </para>
-
-    <example id="profile-script-httpproxy-withpassword">
-      <title>Profile Settings for a Secured Proxy Server</title>
-<programlisting>
-       <![CDATA[
-         # 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
-       ]]>
-      </programlisting>
-    </example>
-
-    <note>
-      <title><command>http_proxy</command> Variable with Other Utilities</title>
-
-      <para>
-        The <command>http_proxy</command> 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>
-
   <index id="generated-index"></index>
 </article>
-
-<!--
-Local variables:
-mode: xml
-fill-column: 72
-End:
--->




More information about the docs-commits mailing list