======================================
INSTALLING SUBVERSION
A Quick Guide
====================================== $LastChangedDate$
Contents:
I. INTRODUCTION
A. Audience
B. Dependency Overview
C. Dependencies in Detail
II. INSTALLATION
A. Building from a Tarball or RPM
B. Building the Latest Source under Unix
C. Building under Unix in Different Directories
D. Installing from a Zip or Installer File under Windows
E. Building the Latest Source under Windows
III. BUILDING A SUBVERSION SERVER
A. Setting Up Apache
B. Making and Installing the Subversion Server
C. Configuring Apache for Subversion
D. Running and Testing
E. Alternative: 'svnrve' and ra_svn
IV. PLATFORM-SPECIFIC ISSUES
A. Windows XP
B. Mac OS X
V. PROGRAMMING LANGUAGE BINDINGS (PYTHON, PERL, RUBY, JAVA) I. INTRODUCTION
============
A. Audience
管理岗位有哪些
This document is written for people who intend to build
Subversion from source code. Normally, the only people who do this are Subversion developers and package maintainers.
If neither of the labels fits you, we recommend you find an
appropriate binary package of Subversion and install that.
While the Subversion project doesn't officially relea binary
packages, a number of volunteers have made such packages
available for different operating systems. Most Linux and BSD distributions already have Subversion packages ready to go via
室内设计手绘standard packaging channels, and other volunteers have built
'installers' for both Windows and OS X. Visit this page for
package links:
/project_packages.html
For tho of you who still wish to build from source, Subversion follows the Unix convention of "./configure && make", but it has a number of dependencies.
B. Dependency Overview
You'll need the following build tools to compile Subversion:
* autoconf 2.58 or later (Unix only)
* libtool 1.4 or later (Unix only)
* a reasonable C compiler (gcc, Visual Studio, etc.)
Subversion also depends on the following third-party libraries: * libapr and libapr-util (REQUIRED for client and rver)
The Apache Portable Runtime (APR) library provides an
abstraction of operating-system level rvices such as file
and network I/O, memory management, and so on. It also麒麟植物
provides convenience routines for things like hashtables,
checksums, and argument processing. While it was originally developed for the Apache HTTP rver, APR is a standalone
library ud by Subversion and other products. It is a
critical dependency for all of Subversion; it's the layer
that allows Subversion clients and rvers to run on
different operating systems.
* libz (REQUIRED for client and rver)
Subversion us zlib for compressing binary differences.
The diff streams are ud everywhere -- over the network,
in the repository, and in the client's working copy.
* libneon or librf (OPTIONAL for client)
The Neon and Serf libraries both allow the Subversion client
to nd HTTP requests. This is necessary if you want your
client to access a repository rved by the Apache HTTP
rver. There is an alternate 'svnrve' rver as well,
though, and clients automatically know how to speak the
svnrve protocol. Thus it's not strictly necessary for your
client to be able to though we still recommend
that your client be built to speak both HTTP and svnrve
protocols. Your client can be compiled against either关于爱情的故事
libneon or librf (or both), as they offer competing
implementations.
* OpenSSL (OPTIONAL for client and rver)
OpenSSL enables your client to access SSL-encrypted
URLs (using either libneon or librf) in addition to
unencrypted URLs. To u SSL with Subversion's
WebDAV rver, Apache needs to be compiled with OpenSSL as well.
* Berkeley DB (OPTIONAL for client and rver)
There are two different repository 'back-end'
implementations. One implementation stores data in a flat
filesystem (known as FSFS); the other implementation stores
data in a Berkeley DB databa (known as BDB). When you
create a repository, you have the option of specifying a
storage back-end. The Berkeley DB back-end will only be
available if the BDB libraries are discovered at compile
time.
* libsasl (OPTIONAL for client and rver)
If the Cyrus SASL library is detected at compile time, then
春节习俗贴春联
the svn client (and svnrve rver) will be able to utilize
SASL to do various forms of authentication when speaking the svnrve protocol.
* Python, Perl, Java, Ruby (OPTIONAL)
Subversion is mostly a collection of C libraries with
院本
well-defined APIs, with a small collection of programs that
u the APIs. If you want to build Subversion API bindings
for other languages, you need to have tho languages
available at build time.
C. Dependencies in Detail
Subversion depends on a number of third party tools and libraries. Some of them are only required to run a Subversion rver; others are necessary just for a Subversion client. This ction explains
what other tools and libraries will be required so that Subversion can be built with the t of features you want.
On Unix systems, the './configure' script will tell you if you are
missing the correct version of any of the required libraries or
tools, so if you are in a real hurry to get building, you can skip
straight to ction II. If you want to gather the pieces you will
need before starting out, however, you should read the following. If you're just installing a Subversion client, the Subversion
team has created a package containing the minimal prerequisite libraries (Apache Portable Runtime, Neon, and Zlib) called the "dependency package" tarball or zipfile. You should be able to
find it at the same place that you downloaded the Subversion
tarball itlf from. (Note that this is new as of Subversion
1.4.0; previous releas packaged the dependencies in the same
tarball as Subversion itlf.) If you don't have the
libraries installed already, you can simply unpack the
dependency package "on top of" the Subversion package; for
example, if you are using a . bundle on Unix, you could
type:
$ tar ar.gz
$ tar ar.gz
$
This will place 'apr', 'apr-util', 'neon', and 'zlib'
directories directly into your unpacked Subversion distribution,
where they will be automatically configured and built by
Subversion's build process.
Note: Becau previous builds of Subversion may have installed older
versions of the libraries, you may want to run some of the cleanup
commands described in ction II.B before installing the following.
1. Apache Portable Runtime 0.9.7 or 1.
2.X (REQUIRED)
Whenever you want to build any part of Subversion, you need the
Apache Portable Runtime (APR) and the APR Utility (APR-util)
libraries. The are included in the Subversion dependency package -
if you are building from a source tarball and wish to u the versions
of APR and APR-util included there, just unpack the dependency package and skip ahead to the next requirement.
****************************************************************
** IMPORTANT ISSUE ABOUT APR VERSIONS: READ THIS. ** ** **
****************************************************************
| |
| APR 0.9.X and 1.X are binary-incompatible. |踩小人图片
| |
| This means: |
| |
| - if you are already using Subversion with APR 0.9.X, and |
| then upgrade your libapr to 1.X without rebuilding |
| Subversion, things will break and gfault. |
| |
高性价比车| - if your Subversion rver libraries are linked to one |
| version of APR, but your Apache rver is linked to a |
| different version, things will break and gfault. |
| |
| Subversion distribution dependencies: |
| ------------------------------------- |
| |
| For a long time, Subversion's main distribution contained |
| APR and APR-UTIL (both 0.9.x), plus a few other things that |
| we couldn't count on the installation system having. But |
| nowadays, Subversion's requirements are no longer exotic, |
| and so our main distribution contains just the Subversion |
| source code itlf -- people compiling Subversion are |
| expected to either have the APR libraries already installed |
| on their system, or to be capable of fetching them easily. |
| |
| For convenience, we still offer a "deps" distribution too, |
| containing APR, APR-UTIL, and various other dependencies. |
| The deps dist ud to contain APR[-UTIL] 0.9.x, but as of |
| 1.5.0 we are finally upgrading it to APR[-UTIL] 1.X. This |
| is becau we think by now there are very few systems that |
| will have binary compatibility issues, and of tho, few are |
| likely to build using the "deps" dist. |
| |
| Note that it's *perfectly* safe to u APR 1.X from the |
| beginning. In fact, we recommend it. If you're building |
| Subversion for the first time, there's no compatibility |
| issue to worry about, so grab the latest version of APR (or |
| just u our deps dist). |
| |
| If you already have a Subversion installation using APR |
| 0.9.x, it's still possible to move to APR 1.X safely. Just |
| be sure to recompile Subversion (and Apache httpd if |
| necessary) after upgrading APR! |
|______________________________________________________________| If you are not building from a tarball with the dependency
package, you will need to get the yourlf:
/i
On Unix systems, if you already have the APR libraries compiled and do
not wish to regenerate them from source code, then Subversion needs to
be able to find them.
There are a couple of options to "./configure" that tell it where
to look for the APR and APR-util libraries. By default, it will first
look for bundled versions of APR and APR-util, and then try to locate
already installed versions of the libraries using the apr-config and
apu-config scripts. The scripts provide all the relevant information