include("site.inc"); $template = new Page; $template->initCommon(); $template->displayHeader(); ?>
This section describes how to set up a HTTP (Web) server to support Fedora installation and software management applications.
Fedora Core provides the Apache server in the
httpd
package. The
httpd
package is included on Fedora systems
installed with the Server installation
type. You may have installed it later in order to run websites
or Web applications. Fedora Extras also offers alternative HTTP servers,
which are beyond the scope of this document.
To install the httpd
package, if you have
not already done so, use the following command:
su -c 'yum install httpd'
Enter the password for the
root
account when
prompted.
To start the service, use the following command:
su -c '/sbin/service httpd start'
Enter the password for the
root
account when
prompted.
To enable this service to load automatically at boot time, use the following command:
su -c '/sbin/chkconfig --level 345 httpd on'
Enter the password for the
root
account when
prompted.
The default firewall configuration for Fedora blocks access from remote systems. To enable other systems to connect to your HTTP service, use the system-config-securitylevel utility:
Choose Desktop → System Settings → Security Level.
Enter the password for the
root
account when
prompted.
Select WWW (HTTP) from the list of services.
When prompted, select Yes to update the firewall configuration.
To enable HTTP access to the files in your mirror directory,
create the configuration file
/etc/httpd/conf.d/mirror.conf
. The
following listing is an example:
# The name at which the mirror will be shared,
# followed by the name of the root directory of that tree.
Alias /mirror /var/www/mirror
# Share options for the mirror.
# Only allow connections from localhost and
# IP addresses which start with 192.168.1
<Directory /var/www/mirror>
AllowOverride None
Order Deny,Allow
Deny from all
Allow from 127.0.0.1 192.168.1
Options Indexes
</Directory>
Example 2. Apache 2.x configuration file for Fedora mirror
You must use root privileges to create or copy files in the
directory /etc/httpd/conf.d/
.
To update an active httpd
service with a new
configuration, use the following command:
su -c '/sbin/service httpd reload'
Enter the password for the
root
account when
prompted.
Your clients may now visit any area of your mirror by using the
URL
http://server.mydomain.org
/mirror/path
.
Apache and SELinux | |
---|---|
The default SELinux configuration for Fedora permits Apache to
use files in the |
Every RPM package has a header 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 dependencies. A dependency is a requirement for one or more additional packages.
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. Fedora Core provides the
yum
utility for solving these dependencies
automatically, providing an improved user experience.
The Yellow Dog Updater Modified, or
yum, is a Python-based system for computing and solving
RPM dependencies. A yum
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 requests all necessary
RPM packages once it has finished. The yum
command relies on rpm
functions to perform
many of the computations involved in the process.
A drawback to yum
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
yum
command can download many megabytes of
headers almost instantly on a standard Ethernet LAN. The
yum
utility is the most popular update method
for Fedora Core.
For more information about using yum
, refer
to http://fedora.redhat.com/docs/yum/.
A yum
repository is a collection of packages on a server which
supports yum
clients. Repositories can serve
both types of clients if desired.
To set up a yum
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 yum
it supports. It is permissible
to have both kinds of repository information in a single
repository.
To support older yum
clients, use the
yum-arch
command. To support current
yum
clients, use the
createrepo
command.
Supporting Fedora Core 3 and beyond | |
---|---|
Fedora Core 3 ships with a newer version of |
The yum-arch
command creates a directory
named headers/
which supports older
versions of yum
(before 2.2). The
yum-arch
program searches recursively
through a target directory and any subdirectories for RPM
packages, and includes them in the header data. The
yum-arch
command always creates the
headers/
directory in the current working
directory. Therefore you should change your working directory
to the directory where you want headers/
to appear.
cd /var/www/mirror/fedora/linux/core/5/i386/os
su -c 'yum-arch -ls .'
Enter the root password at the prompt. The
-l
switch follows symbolic links. The
-s
switch includes SRPMS (source RPM
packages) in the header list. The command above creates the
yum
header cache in the directory
/var/www/mirror/fedora/linux/core/5/i386/os/headers/
.
The createrepo
command creates repository
information to support newer versions of
yum
(and possibly other repository client
programs). The createrepo
command stores
this data in a folder named repodata
.
Run createrepo
against the directory
under which you want the
repodata
directory to appear. The
createrepo
program also searches
recursively for RPM packages to include in the repository
data.
The following command creates the repository data in the
directory
/var/www/mirror/fedora/linux/core/5/i386/os/repodata
.
su -c 'createrepo /var/www/mirror/fedora/linux/core/5/i386/os'
To create repository data for package groups in addition to
the package files, use the createrepo -g
command. The -g
option requires a parameter
which points to the group file, relative
to the given location of the package data. The following
command creates the package group data corresponding to the
repository directly above. Note the relative location of the
group file
/var/www/mirror/fedora/linux/core/5i386/os/Fedora/base/comps.xml
.
su -c 'createrepo -g Fedora/base/comps.xml /var/www/mirror/fedora/linux/core/5/i386/os'
You may have certain clients who update their version of
yum
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.
Typically you will run yum-arch
or
createrepo
against at least the following
locations:
The stock distribution; for example,
/var/www/mirror/fedora/linux/core/5/i386/os/
.
For yum-arch
, use the
-l
and -s
options to
follow the linked directory SRPMS
and
include the source packages therein.
Official updates to the distribution; for example,
/var/www/mirror/fedora/linux/core/updates/5/
.
Once again, for yum-arch
use
-l
and/or -s
if
appropriate.