mirror-tutorial mirror-tutorial-en.xml,1.10,1.11
Paul W. Frields (pfrields)
fedora-docs-commits at redhat.com
Wed Oct 12 22:41:52 UTC 2005
Author: pfrields
Update of /cvs/docs/mirror-tutorial
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv10438
Modified Files:
mirror-tutorial-en.xml
Log Message:
Major changes to simplify, more on the way...
Index: mirror-tutorial-en.xml
===================================================================
RCS file: /cvs/docs/mirror-tutorial/mirror-tutorial-en.xml,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- mirror-tutorial-en.xml 18 Sep 2005 22:43:44 -0000 1.10
+++ mirror-tutorial-en.xml 12 Oct 2005 22:41:50 -0000 1.11
@@ -5,7 +5,10 @@
<!ENTITY % FEDORA-ENTITIES-EN SYSTEM "../docs-common/common/fedora-entities-en.ent">
%FEDORA-ENTITIES-EN;
-<!ENTITY BOOKID "mirror-tutorial-0.31 (2005-08-29)"> <!-- change version of manual and date here -->
+<!ENTITY BOOKNAME "mirror-tutorial">
+<!ENTITY BOOKVERSION "0.32">
+<!ENTITY BOOKDATE "2005-10-12">
+<!ENTITY BOOKID "&BOOKNAME;-&BOOKVERSION; (&BOOKDATE;)"> <!-- change version of manual and date here -->
<!ENTITY BUG-NUM "130125">
<!ENTITY FCLOCALVER "4">
@@ -158,6 +161,16 @@
</para>
</revdescription>
</revision>
+ <revision>
+ <revnumber>0.32</revnumber>
+ <date>2005-10-12</date>
+ <authorinitials>PaulWFrields</authorinitials>
+ <revdescription>
+ <para>
+ Fix default network sharing protocol (#169581, #169584)
+ </para>
+ </revdescription>
+ </revision>
</revhistory>
</articleinfo>
@@ -305,7 +318,7 @@
<title>Naming conventions</title>
<para>
Throughout the rest of the document,
- <filename>/var/ftp/pub/mirror</filename> represents the folder where
+ <filename>/var/www/mirror</filename> represents the folder where
all your mirrored files are stored. You may substitute a different
location. This location simplifies sharing your mirror, due to the
shipping configuration of &FC;. See <xref linkend="sn-server-config"/>
@@ -332,17 +345,14 @@
<note>
<title>RPM packages</title>
<para>
- <firstterm>RPM</firstterm><indexterm>
- <primary>RPM</primary>
- </indexterm>, originally the Red Hat Package Manager and now the RPM
- Package Manager, is not just a file format. RPM is also a system which
- tracks and interconnects software and version information. The RPM
- system is quite popular, and many other Linux distributions use RPM as
- well. Read more information on RPM at <ulink
- url="http://www.rpm.org/">http://www.rpm.org/</ulink>. This document
- contains helpful hints on making the most of RPM, in <xref
- linkend="sn-server-config"/> and
- <xref linkend="sn-client-config"/>.
+ <firstterm>RPM</firstterm><indexterm> <primary>RPM</primary>
+ </indexterm>, originally the Red Hat Package Manager and now
+ the RPM Package Manager, is not just a file format. RPM is
+ also a system which tracks and interconnects software and
+ version information. The RPM system is quite popular, and many
+ other Linux distributions use RPM as well. Read more
+ information on RPM at <ulink
+ url="http://www.rpm.org/">http://www.rpm.org/</ulink>.
</para>
</note>
<para>
@@ -381,7 +391,7 @@
</para>
<screen>
-<userinput>cd /var/ftp/pub/mirror/fedora/linux/core/&FCVER;/i386/os/Fedora
+<userinput>cd /var/www/mirror/fedora/linux/core/&FCVER;/i386/os/Fedora
ln ../../SRPMS SRPMS</userinput>
</screen>
@@ -408,7 +418,7 @@
</para>
<screen>
-<computeroutput>/path/i386/iso/FC&FCVER;-i386-disc1.iso /path/i386/os/disc1 iso9660 defaults 0 0</computeroutput>
+<computeroutput>/<replaceable>path</replaceable>/i386/iso/FC&FCVER;-i386-disc1.iso /<replaceable>path</replaceable>/i386/os/disc1 iso9660 defaults 0 0</computeroutput>
</screen>
<para>
@@ -433,7 +443,7 @@
</para>
<screen>
-<computeroutput>/path/i386/iso/FC&FCVER;-i386-DVD.iso /path/i386/os iso9660 defaults 0 0</computeroutput>
+<computeroutput>/<replaceable>path</replaceable>/i386/iso/FC&FCVER;-i386-DVD.iso /<replaceable>path</replaceable>/i386/os iso9660 defaults 0 0</computeroutput>
</screen>
</section>
@@ -564,7 +574,7 @@
</para>
<screen>
-<userinput>cd /var/ftp/pub/mirror
+<userinput>cd /var/www/mirror
wget --mirror -np -nH --cut-dirs=<replaceable>2</replaceable> http://mirror.example.com/pub/mirror/fedora/linux/core/&FCVER;/</userinput>
</screen>
@@ -665,7 +675,7 @@
</para>
<screen>
-<userinput>rsync filehouse.example.org::files/misc/ /var/ftp/pub/misc/</userinput>
+<userinput>rsync filehouse.example.org::files/misc/ /var/www/misc/</userinput>
</screen>
<para>
@@ -717,7 +727,7 @@
</caution>
<screen>
-<userinput>rsync -PHav mirror.example.org::fedora-linux-core/&FCVER;/ /var/ftp/pub/mirror/fedora/core/&FCVER;</userinput>
+<userinput>rsync -PHav mirror.example.org::fedora-linux-core/&FCVER;/ /var/www/mirror/fedora/linux/core/&FCVER;</userinput>
</screen>
<para id="rsync-n-switch">
@@ -877,11 +887,11 @@
<userinput>rsync -Pan --delete --exclude "**x86_64**" --exclude "**headers**" \
--exclude "**debug**" --exclude "**iso**" \
mirror.example.com::fedora-linux-core/&FCVER;/ \
- /var/ftp/pub/mirror/fedora/core/&FCVER;</userinput>
+ /var/www/mirror/fedora/core/&FCVER;</userinput>
</screen>
</section>
-
+
</section>
<section id="sn-maintenance">
@@ -951,638 +961,264 @@
</section>
<section id="sn-server-config">
- <title>Server Configuration Planning</title>
- <para>
- Decide what services your mirror will offer to clients. There are at least
- three services useful for providing &FED; installation and update
- services: HTTP, FTP, and NFS. Some or all of these services can be used
- for offering post-installation functions such as updates or installing
- additional packages.
- </para>
- <para>
- Install the <filename>vsftpd</filename> package for FTP services. Install
- the <filename>httpd</filename> package to use the Apache HTTP server. Most
- &FC; systems already have the <command>nfs-utils</command> package
- installed, which contains the NFS server.
- </para>
- <para>
- To start a service, use the <command>/sbin/service
- <replaceable>service</replaceable> start</command> command. To enable that
- server by default at boot time, use the <command>chkconfig
- <replaceable>service</replaceable> on</command> command.
- </para>
- <para>
- One recommended method is to download all mirrored files into
- <filename>/var/ftp/pub</filename>, add a link in
- <filename>/var/www/html</filename> that points to
- <filename>/var/ftp/pub</filename>, and share out
- <filename>/var/ftp/pub</filename> via NFS as well. FTP and HTTP services
- do not require any further configuration to work properly.
- <emphasis>However, you should evaluate your site's security needs before
- enabling them.</emphasis> NFS service configuration is explained below
- in <xref linkend="sn-nfs-config"/>.
- </para>
- <para>
- To share out the public FTP area via HTTP, issue the following
- command:
- </para>
-
-<screen>
-<userinput>ln -s /var/ftp/pub /var/www/html/pub</userinput>
-</screen>
-
- <para>
- Your clients may now visit any area of your mirror by using the URL
- <replaceable>http://server.mydomain.org/pub/path</replaceable>. To create
- an NFS share, add a line to <filename>/etc/exports</filename>. This
- example shares out the &FC; &FCVER; i386 stock distribution with read-only
- access for any host in the <computeroutput>mydomain.org</computeroutput>
- domain.
- </para>
-
-<screen>
-<userinput>/var/ftp/pub/linux/fedora/core/&FCVER;/i386/os *.mydomain.org(ro,sync,root_squash)</userinput>
-</screen>
+ <title>Server Configuration</title>
<para>
- To reread the NFS server configuration files and export the new share, use
- the following command:
+ This section gives guidance on setting up a HTTP (Web) server that
+ provides installation and update mirror services.
</para>
-<screen>
-<userinput>exportfs -ar</userinput>
-</screen>
-
- <para>
- Refer to <xref linkend="sn-nfs-config"/> for a list of commands for
- starting services both on demand and at boot time.
- </para>
-
- <section id="sn-solving-dependencies">
- <title>How to Solve Dependencies</title>
- <para>
- Every RPM package has a <emphasis>header</emphasis> that contains all
- the vital information about that package. This information includes
- name, version and release, contents, the capabilities provided by the
- package, and any prerequisites. These prerequisites may include
- <emphasis>dependencies</emphasis><indexterm>
- <primary>dependencies</primary>
- </indexterm>. A dependency is a requirement for one or more additional
- packages.
- </para>
- <para>
- Packages installed without satisfying their dependencies may not work
- correctly. Dependencies may create a problem for users who are trying to
- install a single package. Manually determining and resolving
- dependencies is difficult. &FC; provides the
- <command>yum</command> utility for solving these
- dependencies automatically, providing an improved user experience.
- </para>
+ <section id="sn-setting-up-apache">
+ <title>Setting Up Apache</title>
<para>
- The Yellow Dog Updater Modified, or
- <emphasis>yum</emphasis><indexterm> <primary>yum</primary>
- </indexterm>, is a Python-based system for computing and solving
- RPM dependencies. A <command>yum</command> client retrieves a
- cache of headers from its repository server, as well as a list
- of available RPM packages and their exact locations on the
- server. It can do this via HTTP or FTP, as well as using
- standard file system calls (either local or remote via NFS). The
- client computes solutions to any package dependencies using the
- downloaded header information, and simply requests all necessary
- RPM packages once it has finished. The <command>yum</command>
- command relies on <command>rpm</command> functions to perform
- many of the computations involved in the process.
- </para>
- <para>
- A drawback to <command>yum</command> is that the first time it
- is run, it must download a header for every package installed on
- the system in order to determine available updates. However,
- running a local mirror nullifies this drawback. The
- <command>yum</command> command can, of course, download many
- megabytes of headers almost instantly on a standard Ethernet
- LAN. The <command>yum</command> utility is the most popular
- update method for &FC;.
- </para>
- <para>
- For more information about using <command>yum</command>, refer
- to <ulink url="http://fedora.redhat.com/docs/yum/"/>.
+ The HTTP service, provided by the Apache server in the
+ <filename>httpd</filename> package, is the easiest service to
+ configure. You can also use Apache to offer post-installation
+ functions such as updates or installing additional packages. To
+ install the <filename>httpd</filename> package, if you have not
+ already done so, use the following command:
</para>
- </section>
-
- <section id="sn-repositories">
- <title>Configuring Repositories</title>
- <para>
- A <command>yum</command> <emphasis>repository</emphasis><indexterm>
- <primary>repository</primary>
- <secondary>yum</secondary>
- </indexterm> is a collection of packages on a server which supports
- <command>yum</command> clients. Repositories can serve both types of
- clients if desired.
- </para>
+<screen>
+<userinput>su - -c "yum install httpd"</userinput>
+</screen>
<para>
- To set up a <command>yum</command> repository, you must write a
- directory that contains information which the clients require to resolve
- RPM dependencies. The directory's name depends on the version of
- <command>yum</command> it supports. It is permissible to have both kinds
- of repository information in a single repository.
- </para>
- <para>
- To support older <command>yum</command> clients, use the
- <command>yum-arch</command> command. To support current
- <command>yum</command> clients, use the
- <command>createrepo</command> command.
+ Next, create a configuration file
+ <filename>/etc/httpd/conf.d/mirror.conf</filename> for your
+ mirror files. The following listing is an example:
</para>
- <important>
- <title>Supporting &FC; 3 and beyond</title>
- <para>
- &FC; 3 ships with a newer version of <command>yum</command>.
- To support &FC; 3 <command>yum</command> clients, you
- <emphasis>must</emphasis> use <command>createrepo</command> on
- your server's repositories.
- </para>
- </important>
- <section id="sn-yum-arch">
- <title><command>yum-arch</command></title>
- <para>
- A directory which supports older versions of <command>yum</command>
- (before 2.2) is named <filename>headers</filename>. It is created by
- using the command <command>yum-arch</command>, which is run against
- the directory <emphasis>under which</emphasis> you want the
- <filename>headers</filename> directory to appear. The
- <command>yum-arch</command> program searches recursively through that
- directory and any subdirectories for RPM packages, and includes them
- in the header data.
- </para>
+ <example>
+ <title>Apache 2.x configuration file for installation
+ mirror</title>
<screen>
-<userinput>yum-arch -l -s /var/ftp/pub/linux/fedora/core/&FCVER;/i386/os</userinput>
-</screen>
-
- <para>
- The <command>-l</command> switch follows symbolic links. The
- <command>-s</command> switch includes SRPMS (source RPM packages) in
- the header list. The command above creates the <command>yum</command>
- header cache in the directory
- <filename>/var/ftp/pub/linux/fedora/core/&FCVER;/i386/os/headers</filename>.
- </para>
- </section>
+<computeroutput><![CDATA[# The name at which the installation tree will be shared,
+# followed by the name of the root directory of that tree.
+Alias /mirror /var/www/mirror
- <section id="sn-createrepo">
- <title><command>createrepo</command></title>
- <para>
- The <command>createrepo</command> command creates repository
- information to support newer versions of <command>yum</command> (and
- possibly other repository client programs). The
- <command>createrepo</command> command stores this data in a folder
- named <filename>repodata</filename>. Just as with
- <command>yum-arch</command>, run <command>createrepo</command> against
- the directory <emphasis>under which</emphasis> you want the
- <filename>repodata</filename> directory to appear. The
- <command>createrepo</command> program also searches recursively for
- RPM packages to include in the repository data.
- </para>
- <para>
- The following command creates the repository data in the directory
- <filename>/var/ftp/pub/linux/fedora/core/&FCVER;/i386/os/repodata</filename>.
- </para>
+# Share options for the installation tree.
+# Only allow connections from the local host and machines
+# whose IP addresses start with 192.168.1
-<screen>
-<userinput>createrepo /var/ftp/pub/linux/fedora/core/&FCVER;/i386/os</userinput>
+<Directory /var/www/mirror>
+ AllowOverride None
+ Order Deny,Allow
+ Deny from all
+ Allow from 127.0.0.1 192.168.1
+ Options Indexes
+</Directory>]]></computeroutput>
</screen>
- <para>
- You may not be able to foresee all the possible uses for your server's
- repositories. To minimize problems for your clients, create both kinds
- of repository data for any repositories.
- </para>
-
- </section>
-
- <section id="sn-repository-locations">
- <title>Repository Locations</title>
- <para>
- Typically <command>yum-arch</command> or <command>createrepo</command>
- is run against at least the following locations:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- The stock distribution; for example,
- <filename>/var/ftp/pub/linux/fedora/core/&FCVER;/i386/os/</filename>.
- For <command>yum-arch</command> use the <command>-l</command> and
- <command>-s</command> options to follow the linked directory
- <filename>SRPMS</filename> and include the source packages
- therein.
- </para>
- </listitem>
- <listitem>
- <para>
- Official updates to the distribution; for example,
- <filename>/var/ftp/pub/linux/fedora/core/updates/&FCVER;/</filename>.
- Once again, for <command>yum-arch</command> use
- <command>-l</command> and/or <command>-s</command> if appropriate.
- </para>
- </listitem>
- </itemizedlist>
- </section>
-
- </section>
-
- <section id="sn-nfs-config">
- <title>Configuring NFS</title>
- <para>
- Some client-side utilities also resolve dependencies automatically.
- These utilities require more detailed configuration of the client
- workstation. For more information, see <xref
- linkend="sn-client-config"/> below. These utilities, however, require
- standard file system access to package collections. For this reason, you
- may require NFS on your mirror. Configuration of the client depends
- in large part on how you decide to implement NFS sharing on the mirror.
- </para>
- <para>
- It is difficult to share subdirectories of other shared directories.
- Therefore, think of your mirror as offering many services, each one to
- be considered for NFS sharing. For example, share both the stock
- distribution of &FC; 2 and the stock distribution of &FC; 3.
- </para>
- <para>
- The client side tools discussed later can use a directory of ISO images
- or an exploded tree of package data (see <xref
- linkend="sn-copying-original-distribution"/>). You may share out any or
- all of these, provided your shares do not clash as described above.
- </para>
-
-<!--
-
- FIXME: Can system-config-packages use a directory of loopback-mounted
- images like FTP/HTTP installs in anaconda? See additional FIXME below.
-
--->
+ </example>
<para>
- To share via NFS, edit the <filename>/etc/exports</filename> file. A
- typical share, exported with read-only access for any host on any
- network, looks like this:
+ To start the <command>httpd</command> service, use the following
+ command:
</para>
<screen>
-<computeroutput>/mnt/media *(ro,all_squash,async)</computeroutput>
+<userinput>/sbin/service httpd start</userinput>
</screen>
<para>
- The <command>all_squash</command> option ensures that no users accessing
- the share using their local root account receive equivalent access on
- the share. This feature keeps some small measure of security even on a
- public share, since a file readable only by root on the server is not
- readable by an NFS client. The <command>async</command> option allows
- asynchronous read/writes, which is not dangerous in this case because
- the share is read-only. The <command>*</command> is a host designator,
- in this case matching any host name or IP address. You may wish to
- restrict this share to your internal network. You may declare either a
- matching name or IP address specification. You can find more detailed
- information by reading the man pages for the
- <filename>/etc/exports</filename> file by using the command <command>man
- 5 exports</command>.
- </para>
- <important>
- <title>Access control format</title>
- <para>
- Be certain that you do not have a space between the host specification
- and the option listing in parentheses <computeroutput>(
- )</computeroutput>. A space causes the NFS daemon to consider that
- entry as <emphasis>two separate access controls</emphasis>. In the
- example above, a space causes the first access control to match all
- hosts and allow write access, which is the default! The second access
- control is never reached because the first matches any host first.
- </para>
- </important>
- <para>
- To share the proper directories from your mirror, use one of the
- following forms. To share your exploded tree, export the directory that
- contains the &FED; folder (note the capitalization). For i386
- architectures:
+ To enable that server by default at boot time, use the following
+ command:
</para>
<screen>
-<userinput>/var/ftp/pub/linux/fedora/core/&FCVER;/i386/os *(ro,all_squash,async)</userinput>
+<userinput>chkconfig httpd on</userinput>
</screen>
<para>
- To share a directory full of ISO images, export that directory:
+ Your clients may now visit any area of your mirror by using the
+ URL
+ http://<replaceable>server.mydomain.org</replaceable>/mirror/<replaceable>path</replaceable>.
</para>
-<screen>
-<userinput>/var/ftp/pub/linux/fedora/core/&FCVER;/i386/iso *(ro,all_squash,async)</userinput>
-</screen>
-
-<!--
+ </section>
- FIXME: Find out if this works first.
+ <section id="sn-solving-dependencies">
+ <title>Solving Dependencies</title>
+ <para>
+ Every RPM package has a <emphasis>header</emphasis> that contains
+ all the vital information about that package. This information
+ includes name, version and release, contents, the capabilities
+ provided by the package, and any prerequisites. These
+ prerequisites may include
+ <emphasis>dependencies</emphasis><indexterm>
+ <primary>dependencies</primary> </indexterm>. A dependency is a
+ requirement for one or more additional packages.
+ </para>
+ <para>
+ Packages installed without satisfying their dependencies may not
+ work correctly. Dependencies may create a problem for users who
+ are trying to install a single package. Manually determining and
+ resolving dependencies is difficult. &FC; provides the
+ <command>yum</command> utility for solving these dependencies
+ automatically, providing an improved user experience.
+ </para>
- <para>
- To share a directory full of <emphasis>mounted</emphasis> ISO images,
- export that directory. Do not share each mount point separately. The
- mount points should be named <filename>disc1</filename>,
- <filename>disc2</filename>, and so forth:
- </para>
+ <para>
+ The Yellow Dog Updater Modified, or
+ <emphasis>yum</emphasis><indexterm> <primary>yum</primary>
+ </indexterm>, is a Python-based system for computing and solving
+ RPM dependencies. A <command>yum</command> client retrieves a
+ cache of headers from its repository server, as well as a list of
+ available RPM packages and their exact locations on the server. It
+ can do this via HTTP or FTP, as well as using standard file system
+ calls (either local or remote via NFS). The client computes
+ solutions to any package dependencies using the downloaded header
+ information, and simply requests all necessary RPM packages once
+ it has finished. The <command>yum</command> command relies on
+ <command>rpm</command> functions to perform many of the
+ computations involved in the process.
+ </para>
+ <para>
+ A drawback to <command>yum</command> is that the first time it is
+ run, it must download a header for every package installed on the
+ system in order to determine available updates. However, running a
+ local mirror nullifies this drawback. The <command>yum</command>
+ command can download many megabytes of headers almost instantly on
+ a standard Ethernet LAN. The <command>yum</command> utility is the
+ most popular update method for &FC;.
+ </para>
+ <para>
+ For more information about using <command>yum</command>, refer to
+ <ulink url="http://fedora.redhat.com/docs/yum/"/>.
+ </para>
-<screen>
-<userinput>/var/ftp/pub/linux/fedora/core/&FCVER;/i386/mounts *(ro,all_squash,async)</userinput>
-</screen>
+ </section>
--->
+ <section id="sn-repositories">
+ <title>Configuring Repositories</title>
+ <para>
+ A <command>yum</command>
+ <emphasis>repository</emphasis><indexterm>
+ <primary>repository</primary> <secondary>yum</secondary>
+ </indexterm> is a collection of packages on a server which
+ supports <command>yum</command> clients. Repositories can serve
+ both types of clients if desired.
+ </para>
+ <para>
+ To set up a <command>yum</command> repository, you must write a
+ directory that contains information which the clients require to
+ resolve RPM dependencies. The directory's name depends on the
+ version of <command>yum</command> it supports. It is permissible
+ to have both kinds of repository information in a single
+ repository.
+ </para>
+ <para>
+ To support older <command>yum</command> clients, use the
+ <command>yum-arch</command> command. To support current
+ <command>yum</command> clients, use the
+ <command>createrepo</command> command.
+ </para>
+ <important>
+ <title>Supporting &FC; 3 and beyond</title>
<para>
- Once you have edited the <filename>/etc/exports</filename> file, make
- sure that the NFS server is installed and started properly on the
- mirror. The <filename>portmap</filename> and
- <filename>nfs-utils</filename> packages must be installed. Configure
- them to be turned on at boot time by default.
+ &FC; 3 ships with a newer version of <command>yum</command>. To
+ support &FC; 3 <command>yum</command> clients, you
+ <emphasis>must</emphasis> use <command>createrepo</command> on
+ your server's repositories.
</para>
+ </important>
-<screen>
-<userinput>/sbin/chkconfig portmap on
-/sbin/chkconfig nfslock on
-/sbin/chkconfig nfs on</userinput>
-</screen>
-
+ <section id="sn-yum-arch">
+ <title><command>yum-arch</command></title>
<para>
- To check if any of these services are currently running, use the
- <command>/sbin/service <replaceable>service_name</replaceable>
- status</command> command:
+ A directory which supports older versions of
+ <command>yum</command> (before 2.2) is named
+ <filename>headers</filename>. It is created by using the command
+ <command>yum-arch</command>, which is run against the directory
+ <emphasis>under which</emphasis> you want the
+ <filename>headers</filename> directory to appear. The
+ <command>yum-arch</command> program searches recursively through
+ that directory and any subdirectories for RPM packages, and
+ includes them in the header data.
</para>
<screen>
-<userinput>/sbin/service portmap status
-/sbin/service nfslock status
-/sbin/service nfs status</userinput>
+<userinput>yum-arch -l -s /var/www/mirror/fedora/linux/core/&FCVER;/i386/os</userinput>
</screen>
<para>
- To restart a service, use the <command>/sbin/service
- <replaceable>service_name</replaceable> restart</command> command:
+ The <command>-l</command> switch follows symbolic links. The
+ <command>-s</command> switch includes SRPMS (source RPM
+ packages) in the header list. The command above creates the
+ <command>yum</command> header cache in the directory
+ <filename>/var/www/mirror/fedora/linux/core/&FCVER;/i386/os/headers</filename>.
</para>
+ </section>
-<screen>
-<userinput>/sbin/service portmap restart
-/sbin/service nfslock restart
-/sbin/service nfs restart</userinput>
-</screen>
-
+ <section id="sn-createrepo">
+ <title><command>createrepo</command></title>
+ <para>
+ The <command>createrepo</command> command creates repository
+ information to support newer versions of <command>yum</command>
+ (and possibly other repository client programs). The
+ <command>createrepo</command> command stores this data in a
+ folder named <filename>repodata</filename>. Just as with
+ <command>yum-arch</command>, run <command>createrepo</command>
+ against the directory <emphasis>under which</emphasis> you want
+ the <filename>repodata</filename> directory to appear. The
+ <command>createrepo</command> program also searches recursively
+ for RPM packages to include in the repository data.
+ </para>
<para>
- If any service is not started, use the command <command>/sbin/service
- <replaceable>service_name</replaceable> start</command> to start it, as
- in the following examples:
+ The following command creates the repository data in the
+ directory
+ <filename>/var/www/mirror/fedora/linux/core/&FCVER;/i386/os/repodata</filename>.
</para>
<screen>
-<userinput>/sbin/service portmap start
-/sbin/service nfslock start
-/sbin/service nfs start</userinput>
+<userinput>createrepo /var/www/mirror/fedora/linux/core/&FCVER;/i386/os</userinput>
</screen>
<para>
- To change your exports when the NFS service is already running, use the
- command <command>/usr/sbin/exportfs -ar</command>. The command
- <command>/usr/sbin/showmount -e</command> displays a list of the
- current NFS exports on the local host machine.
+ You may not be able to foresee all the possible uses for your
+ server's repositories. You may have certain clients who update
+ their version of <command>yum</command> in a non-prescribed way.
+ To minimize problems for your clients, create both kinds of
+ repository data for any repositories. The extra repository
+ information is relatively small and will not affect your
+ mirror's proper function.
</para>
</section>
- </section>
-
- <section id="sn-client-config">
- <title>Client Configuration</title>
- <para>
- You must also correctly configure the client workstations that use your
- mirror. Using the mirror as a source for RPM packages, clients may have
- seamless access for installing basic software through
- <application>system-config-packages</application>, solving RPM package
- installations at the command line, and pulling bug fix and security errata
- updates.
- </para>
-
- <section id="sn-system-config-packages">
- <title>Configuring <application>system-config-packages</application></title>
+ <section id="sn-repository-locations">
+ <title>Repository Locations</title>
<para>
- Users typically run the
- <application>system-config-packages</application> application from the
- GUI menu, by choosing <guimenu>System Settings</guimenu>,
- <guimenuitem>Add/Remove Applications</guimenuitem>. This program allows
- the user to change the stock installation, provided no updates have
- taken place yet that interfere.
- </para>
- <para>
- Often, <application>system-config-packages</application> stops
- functioning optimally after certain updates are installed. This is
- because <application>system-config-packages</application> solves
- dependencies based on the stock distribution. It is impossible for
- <application>system-config-packages</application> to predict version
- numbers of updates. If you intend to carry updates on your mirror, you
- should be aware that installing certain updates causes
- <application>system-config-packages</application> to lose its
- effectiveness. Some sites do not mirror all updates due to configuration
- management concerns. The guidance in this section is especially useful
- in those scenarios.
- </para>
-
- <tip id="tp-s-c-p-stock-only">
- <title><command>yum</command> and
- <application>system-config-packages</application></title>
- <para>
- If you plan to carry updates on your mirror, as most administrators
- do, you will probably not use
- <application>system-config-packages</application> much. Once the
- installed package versions become out of sync with the original
- distribution versions, <command>yum</command> becomes much
- more useful. The preferred method for installing a package in that
- case would be <command>yum install
- <replaceable>package_name</replaceable></command>. See <xref
- linkend="sn-solving-dependencies"/> for more information.
- </para>
- </tip>
-
- <section id="sn-autofs">
- <title>Setting Up <command>autofs</command></title>
- <para>
- The <command>autofs</command><indexterm>
- <primary>autofs</primary>
- </indexterm> facility allows a &FC; system to mount file systems on
- demand. The <filename>/etc/auto.master</filename> file contains an
- <emphasis>automounter map</emphasis><indexterm>
- <primary>automounter map</primary>
- </indexterm>
- <indexterm>
- <primary>map</primary>
- <secondary>automounter</secondary>
- <see>automounter map</see>
- </indexterm>. On &FC;, the automounter map is a list of additional
- definition files that should be loaded, one for each directory in the
- map. An example line from <filename>/etc/auto.master</filename> is
- shown below:
- </para>
-
-<screen>
-<computeroutput>/misc /etc/auto.misc --timeout=60</computeroutput>
-</screen>
-
- <para>
- The first term in the line is the directory which is reserved for
- automounting. The second term is the automount file which should be
- consulted to determine any maps for that directory. The third term in
- the example indicates that if a map under /misc is not busy for 60
- seconds, it is unmounted.
- </para>
- <para>
- The <filename>/etc/auto.misc</filename> file contains entries similar
- to the following example.
- </para>
-
-<screen>
-<computeroutput>remote -ro,soft,intr host.foobar.org:/pub</computeroutput>
-</screen>
-
- <para>
- This line is contained in the automounter map file for the
- <filename>/misc</filename> directory. The first term is a key which is
- the name of a directory that appears upon demand. The second term is
- actually a list of options, identical to those that would be used for
- a real <command>mount</command> command. The final term is the file
- system (local or remote) to mount. In the above example, if the user
- of this station accesses the directory
- <filename>/misc/remote</filename>, an NFS mount is automatically
- performed. The user's command appears to hesitate, depending on how
- fast the NFS server responds. Then <filename>/misc/remote</filename>
- appears to be full of whatever content is on host.foobar.org in the
- <filename>/pub</filename> NFS share.
- </para>
- <para>
- You can use this function to provide NFS access to the stock
- distribution for &FC;. Choose a directory to map in the
- <filename>/etc/auto.master</filename> file, and match it to a
- corresponding automounter map file. The easiest way to do this is to
- simply remove the comment <computeroutput>#</computeroutput> from the
- front of the line attaching <filename>/misc</filename> to
- <filename>/etc/auto.misc</filename>. The default timeout should be
- sufficient.
- </para>
- <para>
- Make an entry in <filename>/etc/auto.misc</filename> similar to
- this. You can have multiple entries, each one with a different
- key. For instance, each key could be mapped to a different version of
- &FC; that you have available on the local mirror.
- </para>
-
-<screen>
-<userinput>fc&FCVER; -ro,soft,intr mirror.mydomain.org:/var/ftp/pub/linux/fedora/core/&FCVER;</userinput>
-</screen>
-
- <para>
- Now restart the <command>autofs</command> service:
- </para>
-
-<screen>
-<userinput>/sbin/service autofs restart</userinput>
-</screen>
-
- <para>
- To access the stock distribution for &FC; &FCVER; the user can simply
- type <command>cd /misc/fc&FCVER;</command>. The share is automatically
- mounted and the files simply appear in that local directory.
- </para>
-
- </section>
-
- <section id="sn-shared-desktop-s-c-p">
- <title><filename>/usr/share/applications/system-config-packages</filename></title>
- <para>
- Now that <command>autofs</command> has been configured, your client
- workstations need to be configured so that
- <application>system-config-packages</application> points to the
- mirror's NFS share. Edit the
- <filename>/usr/share/applications/system-config-packages</filename>
- file's <command>Exec=</command> line to add a switch pointing to the
- share:
- </para>
-
-<screen>
-<userinput>Exec=/usr/bin/system-config-packages --tree=/misc/fc&FCVER;/i386/os</userinput>
-</screen>
-
- <para>
- When users choose <guimenu>System Settings</guimenu>,
- <guimenuitem>Add/Remove Applications</guimenuitem> from the GUI main
- menu, the system now automatically resolves package dependencies from
- the mirror. The restrictions stated above in <xref
- linkend="tp-s-c-p-stock-only"/> apply.
- </para>
- </section>
-
- <section id="sn-rpm-aid">
- <title>The <command>rpm --aid</command> Switch</title>
- <para>
- The <command>--aid</command> switch for the <command>rpm</command>
- command also automatically solves dependencies. It performs this
- function based on the <filename>rpmdb-fedora</filename> package. That
- package is a preset database for a system that has every RPM package
- in the &FC; distribution installed. Even if a system does not
- <emphasis>itself</emphasis> have every package installed, it can
- consult the <filename>rpmdb-fedora</filename> package database to see
- what such a system <emphasis>would</emphasis> look like. By using the
- <command>--aid</command> switch, clients can issue a single
- <command>rpm --install --aid</command> command against an original
- &FC; package, and have all dependencies automatically installed as
- well.
- </para>
- <para>
- Two steps are required for this process. First, install the
- <filename>rpmdb-fedora</filename> package:
- </para>
-
-<screen>
-<userinput>rpm --install /misc/fc&FCVER;/i386/os/&FED;/RPMS/rpmdb-fedora-*.rpm</userinput>
-</screen>
-
- <para>
- Then, edit the file <filename>/etc/rpm/macros.solve</filename>, which
- is part of the <filename>rpmdb-fedora</filename> package. Change the
- following lines to enable package resolution:
- </para>
-
-<screen>
-<computeroutput>%_solve_pkgsdir /misc/fc&FCVER;/i386/os/&FED;/RPMS/
-%_solve_name_fmt %{?_solve_pkgsdir}%%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm</computeroutput>
-</screen>
-
- <para>
- Users now issue a single command to install any package from
- the stock distribution, and all dependencies are solved for
- them. For example:
- </para>
-
-<screen>
-<userinput>rpm --install --aid /misc/fc&FCVER;/i386/os/&FED;/RPMS/kdeutils-*.rpm</userinput>
-</screen>
-
- <para>
- If a user forgets the <command>--aid</command> switch, they still
- receive hints. Normally <command>rpm</command> displays a slightly
- cryptic list of capability requirements, instead of straightforward
- package names. If you edit <filename>/etc/rpm/macros.solve</filename>
- as shown, <command>rpm</command> displays a list of required package
- names instead.
- </para>
- <para>
- Package dependency solutions using <command>--aid</command> are also
- restricted as shown above in <xref linkend="tp-s-c-p-stock-only"/>.
- </para>
-
- </section>
+ Typically <command>yum-arch</command> or
+ <command>createrepo</command> is run against at least the
+ following locations:
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ The stock distribution; for example,
+ <filename>/var/www/mirror/fedora/linux/core/&FCVER;/i386/os/</filename>.
+ For <command>yum-arch</command> use the
+ <command>-l</command> and <command>-s</command> options to
+ follow the linked directory <filename>SRPMS</filename> and
+ include the source packages therein.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Official updates to the distribution; for example,
+ <filename>/var/mirror/fedora/linux/core/updates/&FCVER;/</filename>.
+ Once again, for <command>yum-arch</command> use
+ <command>-l</command> and/or <command>-s</command> if
+ appropriate.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </section>
</section>
More information about the Fedora-docs-commits
mailing list