$Id: INSTALL 6145 2006-08-06 13:13:03Z xmldoc $

INSTALL file for the DocBook XSL stylesheets distribution

----------------------------------------------------------------------
Case #1: Installation using a package management system
----------------------------------------------------------------------
If you have installed the DocBook XSL distribution using "apt-get",
"yum", "urpmi", or some similar package-management front-end,
then, as part of the package installation, the stylesheets have
already been automatically installed in the appropriate location
for your system, and your XML catalog environment has probably
been updated to use that location.

----------------------------------------------------------------------
Case #2: Installing manually
----------------------------------------------------------------------
If you have downloaded a docbook-xsl zip, tar.gz, or tar.bz2
file, use the following steps to install it.

  1. Move the zip, tar.gz, or tar.bz2 file to the directory where
     you'd like to install it (not to a temporary directory).

  2. unzip or untar/uncompress the file

     That will create a docbook-xsl-$VERSION directory (where
     $VERSION is the version number for the release).

The remaining steps are all OPTIONAL. They are intended to
automatically update your user environment with XML Catalog
information about the DocBook XSL distribution. You are NOT
REQUIRED to complete these remaining steps. However, if you do
not, and you want to use XML catalogs with the DocBook XSL
stylesheets, you will need to manually update your XML catalog
environment

  3. Change to the docbook-xsl-$VERSION directory and execute the
     install.sh script:

       ./install.sh

     That will launch an interactive installer, which will emit a
     series of prompts for you to respond to.

     To instead run it non-interactively without being prompted
     for confirmation of the changes it makes, invoke it with the
     "--batch" switch, like this:

       ./install.sh --batch

     After the process is complete, the installer will emit a
     message with a command you need to run in order to source
     your environment for use with the stylesheets.

  4. To test that he installation has updated your environment
     correctly, execute the test.sh script:

       ./test.sh

     That will test your XML catalog environment, using both the
     xmlcatalog application and the Apache XML Commons Resolver.

     NOTE: The test.sh file is not created until the install.sh
           file is run for the first time.

  5. (UNINSTALLING) If/when you want to uninstall the release,
     execute the uninstall.sh script.

       ./uninstall.sh

     To instead run it non-interactively without being prompted
     for confirmation of the changes it makes, invoke it with the
     "--batch" switch, like this:

       ./uninstall.sh --batch

     NOTE: The uninstall.sh file is not created until the install.sh
           file is run for the first time.


----------------------------------------------------------------------
Note to packagers
----------------------------------------------------------------------
The install.sh, .CatalogManager.properties.example, and .urilist
files should not be packaged. They are useful only to users who
are installing the stylesheets manually.

The catalog.xml file should be packaged.
