Notes on installing SVN Service in ReadHat Linux 5.5
Notes on installing SVN Service in ReadHat Linux 5.5, Subversion independent Service, and apache integrated Service.
I. Svn Independent Service Installation
Operating System: RedHat Linux5.5
Obtain the installation package:
Download
- Http://subversion.tigris.org/downloads/subversion-1.4.0.tar.gz
- Http://subversion.tigris.org/downloads/subversion-deps-1.4.0.tar.gz
Compile:
Log on as the root user.
Upload subversion-1.4.0.tar.gzand subversion-deps-1.4.0.tar.gz to the server.
Tar xfvz subversion-1.4.0.tar.gz
Tar xfvz subversion-deps-1.4.0.tar.gz
The subversion-deps package has four directories: zlib apr-util neon. All these four directories are dependent packages. The Code required for compiling subversion
Cd subversion-1.4.0
./Configure-prefix =/opt/svn-without-berkeley-db-with-zlib
(Note: Run in svnserve mode without adding apache compilation parameters. Store version libraries in fsfs format without compiling berkeley-db)
Make clean
Make
Make install
If an error occurs in make, refer to the following solution:
When I compile the Neon library on 64-bit Linux, an error occurs: "relocation R_X86_64_32 against 'a local symbol' can not be used when making a shared object ".
The Neon library is a library used for communication between Subversion servers and HTTP clients. It is usually compiled into a static library. However, it is later linked to different dynamic link libraries, which leads to an error in the compilation process on the AMD 64-bit operating system. The following information is displayed:
Subversion-1.4.6/neon/src/. libs/libneon. a (ne_request.o): relocation R_X86_64_32
Against 'a local symbol' can not be used when making a shared object;
Recompile with-fPIC
/Home/jrandom/subversion-1.4.6/neon/src/. libs/libneon. a: cocould not
Read symbols: Bad value
This is mentioned in an article in The developer email list.
The solution is to provide a "-- enable-shared" parameter for the Subversion configuration script.
Reference: http://subversion.apache.org/faq.zh.html
Vi/etc/profile, which is added at the end of/etc/profile:
PATH = $ PATH:/opt/svn/bin
Export PATH
Test:
Svnserve-version
If the following figure is displayed, the installation is successful:
Svnserve, version 1.4.0 (r21228)
Compiled Oct 12 2006, 10:18:56
Copyright (C) 2000-2006 CollabNet.
Subversion is open source software, see [url] http://subversion.tigris.org/#/url]
This product includes DES software developed by CollabNet ([url] http://www.collab.net/#/url]).
The following repository back-end (FS) modules are available:
* Fs_fs: Module for working with a plain file (FSFS) repository.
2. svn Configuration
Create a version library directory. You can create multiple directories:
Mkdir-p/opt/svndata/repos1
Mkdir-p/opt/svndata/repos2
Build a version Library: (the initialization process generates configuration files and other files)
Svnadmin create/opt/svndata/repos1
Svnadmin create/opt/svndata/repos2
Modify the version library configuration file:
Version Library 1:
Vi/opt/svndata/repos1/conf/svnserve. conf
Modify the content:
[General]
Anon-access = none
Auth-access = write
Password-db =/opt/svn/conf/pwd. conf
Authz-db =/opt/svn/conf/authz. conf
Realm = repos1
Version library 2:
Vi/opt/svndata/repos2/conf/svnserve. conf
Modify the content:
[General]
Anon-access = none
Auth-access = write
Password-db =/opt/svn/conf/pwd. conf
Authz-db =/opt/svn/conf/authz. conf
Realm = repos2
That is, except realm = repos2, the other configuration files are exactly the same as those of version 1. If more version libraries are available, follow these steps.
Configure the Users Allowed to access:
Vi/opt/svn/conf/pwd. conf
To simplify the configuration, two version libraries share one user configuration file. If necessary, they can also be separated.
Note: modifications to user configuration files take effect immediately without the need to restart svn.
The file format is as follows:
[Users]
<User 1 >=< password 1>
<User 2 >=< password 2>
[Users] is required. The following lists the users who want to access svn. each user has a row. Example:
[Users]
Alan = password
King = hello
Configure user access permissions:
Vi/opt/svn/conf/authz. conf
To simplify the configuration, the three version libraries share one permission configuration file/opt/svn/conf/authz. conf. If necessary, they can also be separated. File.
Note:
* The user name displayed in the permission configuration file must be defined in the user configuration file.
* Changes to the permission configuration file take effect immediately without restarting svn.
User Group format:
[Groups]
<User group name >=< user 1>, <user 2>
One user group can contain one or more users separated by commas.
Version library directory format:
[<Version library>:/project/directory]
@ <User group name >=< permission>
<User name >=< permission>
The box number can be written in multiple ways:
/, Indicating the root directory and the following. The root directory is specified when svnserve is started. We specify it as/opt/svndata. In this way,/sets permissions for all version libraries.
Repos1:/indicates setting permissions for Version 1.
Repos2:/abc indicates setting permissions for the abc Project in version 2.
Repos2:/abc/aaa indicates setting permissions for the aaa directory of the abc Project in version library 2
The permission subject can be a user group, user, or *,
Add @ to the user group @
* Indicates all users.
The permission can be w, r, wr, or null.
Null indicates that you do not have any permissions.
Example:
[Groups]
Admin = alan
[/]
@ Admin = rw
[Repos1:/abc/aaa]
King = rw
[Repos2:/pass]
King =
Delete useless files:
Rm/opt/svndata/repos1/conf/authz
Rm/opt/svndata/repos1/conf/passwd
Rm/opt/svndata/repos2/conf/authz
Rm/opt/svndata/repos2/conf/passwd
3. Start svn
Create a user to start svn:
Useradd svn
Passwd svn
Set the user svn password as prompted
Allow user svn to access the version Library:
Chown-R svn: svn/opt/svndata
Chown-R svn: svn/opt/data
Start svn:
Svnserve-d -- listen-port 9999-r/opt/svndata
Where:
Su-svn indicates to start svn as user svn
-D Indicates running in daemon mode (running in the background)
-Listen-port 9999 indicates port 9999, which can be replaced with the required port. Note that the root permission is required to use ports lower than 1024.
-R/opt/svndata specifies that the root directory is/opt/svndata
Check:
Ps-ef | grep svnserve
If the following information is displayed, the instance is successfully started:
Svn 6941 1 0? 00:00:00 svnserve-d-listen-port 9999-r/opt/svndata
========================================================== ========================
Ii. Integration of svn and apache
The Subversion storage method is the Berkeley DB Berkeley storage method, and the fsfs storage method.
Data storage table of two versions
Features |
Berkeley DB |
FSFS |
Sensitive to operation interruptions |
Sensitive; system crashes or permission issues can cause database congestion and regular recovery is required.
|
Insensitive |
Read-Only Loading |
No |
Yes |
Storage platform independent |
No |
Yes |
Accessible from network file systems |
No |
Yes |
Version library size |
Slightly larger |
Slightly smaller |
Scalability: Number of revision trees |
Unlimited |
Some local file systems may encounter problems when processing a single directory containing thousands of entries.
|
Scalability: Directory with many files |
Slow |
Slow |
Speed of checking out the latest code |
Fast |
Yes |
Massive submission speed |
Slow, but the time is allocated in the entire commit operation
|
Fast, but the last long delay may cause the client operation to time out.
|
Group access management |
It is very sensitive to the user's umask settings, and it is best to only be accessed by one user.
|
Insensitive to umask settings |
Function Maturity |
2001 |
2004 |
1. Install APR-1.2.7 and APR-util-1.2.7
: [Url] http://apr.apache.org/
Tar zxvf apr-1.2.7.tar.gz
./Configure
Make
Make install
Tar zxvf apr-util-1.2.7.tar.gz
./Configure -- with-apr =/usr/local/apr/
Make
Make install
2. Compile and install APACHE.
Tar zxvf httpd-2.2.3.tar.gz
Cd httpd-2.2.3
. /Configure -- prefix =/opt/apache -- enable-dav -- enable-so -- enable-maintainer-mode -- with-apr =/usr/local/apr/bin/apr-1-config -- -apr-util =/usr/local/apr/bin/apu-1-config
Make
Make install
3. Install subversion-1.4.0
Tar zxvf subversion-1.4.0.tar.gz
./Configure -- with-apxs =/opt/apache/bin/apxs -- with-apr =/usr/local/apr -- with-apr-util =/usr/local/apr
Problem: Shared Library Error
Method: echo "/usr/local/apr-util/lib">/etc/ld. so. c
Ldconfig echo $?
Make
Make install
Set environment variables (do not do it)
Vi/etc/profile, which is added at the end of/etc/profile:
PATH = $ PATH:/opt/svn/bin
Export PATH
4. Check whether the two dynamic libraries of subversion are successfully installed.
Vi/opt/apache/conf/httpd. conf
The following two modules indicate that the installation is successful.
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
5. Configure SVN
Vi/opt/apache/conf/httpd. conf
Configuration:
<Location/svn>
DAV svn
SVNParentPath/data/svn/repos // svn parent directory
AuthType Basic // set the connection type
AuthName "Subversion repository" // connection box prompt
AuthUserFile/data/svn/passwd // user configuration file
AuthzSVNAccessFile/data/svn/auth
Require valid-user // All passwd users can access
</Location>
6. Create a SVN storage warehouse
# Mkdir-p/opt/svndata/repos
# Svnadmin create-fs-type fsfs/opt/svndata/repos
Back up previous SVN Databases
# Svnadmin dump/opt/svndata/repos>/root/repos20080328
Recover the backup data to the local device.
# Svnadmin load/opt/svndata/repos/</root/repos20080328
7. Create a local access control file
#/Opt/apache/bin/htpasswd [-c]/opt/passwd north
// Use-c to create a new user file when setting the user for the first time.
#/Opt/apache/bin/htpasswd passwd username (Add a new user)
8. Create a local project control file
Touch/opt/svndata/auth
File Content:
[Groups]
[Repos1:/]
# Wxy = rw
North = rw
Tom = rw
[Repos2:/]
Repos2 = rw
9. Install the client and access the server
[Url] http: // 192.168.0.180:/svn/jishu [/url]
Note: SVN is added during APACHE configuration.
10. The installation has basically ended.
Modify the/data/svn/repos attribute. Otherwise, the file upload may fail.
Chmod-R apache. apache repos
3. Routine maintenance commands and Parameters
Start svn Service
Svnserve-d -- listen-port 20000-r/opt/svndata
Create a version Library
Svnadmin create fs-type fsfs/opt/svndata/mark
View version Library Information
Svn list file: // opt/svndata/mark
Svn list -- verbose file: // opt/svndata/mark
Imported directory structure
Svn import/tmp/mark/file: // opt/svndata/mark/-- message "init" (the folder mark contains bo)
Delete the bo folder under the version library mark
Svn delete svn: // 192.168.0.180: 20000/opt/svndata/mark/bo-m "delete"
// Export
$ Svnlook youngest oldrepo
$ Svnadmin dump oldrepo>; dumpfile
// Restore
$ Svnadmin load newrepo <dumpfile
Stop the subversion Service
Ps aux | grep svnserve
Kill-9 ID No.
Set up SVN server SVN in Ubuntu 14.04 ://
CentOS 6.2 SVN setup (YUM installation)
Deploy Apache + SVN in CentOS 6.5
Build an SVN server using Apache + SVN
Set up and use the SVN server in Windows + reset the password on the client
Install SVN in Ubuntu Server 12.04 and migrate Virtual SVN data
Build SVN service and migration method on Ubuntu Server
Subversion (SVN) Details: click here
Subversion (SVN): click here