CentOS6.3下安装配置SVN(Subversion)

#检查是否安装了低版本的SVN

[root@localhost ~]# rpm -qa subversion
subversion-1.6.11-7.el6.x86_64

#卸载旧版本SVN

[root@localhost ~]# yum remove subversion

#安装SVN

[root@localhost Desktop]# yum install subversion
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
 * base: mirrors.hustunique.com
 * extras: mirrors.hustunique.com
 * updates: mirrors.hustunique.com
base                                                     | 3.7 kB     00:00     
extras                                                   | 3.4 kB     00:00     
updates                                                  | 3.4 kB     00:00     
updates/primary_db                                       | 4.4 MB     00:25     
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package subversion.x86_64 0:1.6.11-9.el6_4 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package            Arch           Version                Repository       Size
================================================================================
Installing:
 subversion         x86_64         1.6.11-9.el6_4         updates         2.3 M

Transaction Summary
================================================================================
Install       1 Package(s)

Total download size: 2.3 M
Installed size: 12 M
Is this ok [y/N]: y
Downloading Packages:
subversion-1.6.11-9.el6_4.x86_64.rpm                     | 2.3 MB     00:15     
warning: rpmts_HdrFromFdno: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
Importing GPG key 0xC105B9DE:
 Userid : CentOS-6 Key (CentOS 6 Official Signing Key) <centos-6-key@centos.org>
 Package: centos-release-6-3.el6.centos.9.x86_64 (@anaconda-CentOS-201207061011.x86_64/6.3)
 From   : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
Is this ok [y/N]: y
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : subversion-1.6.11-9.el6_4.x86_64                             1/1 
  Verifying  : subversion-1.6.11-9.el6_4.x86_64                             1/1 

Installed:
  subversion.x86_64 0:1.6.11-9.el6_4                                            

Complete!

#确认是否已安装svn模块

[root@localhost ~]# cd /etc/httpd/modules;ls | grep svn
mod_authz_svn.so
mod_dav_svn.so

#创建版本库

[root@localhost ~]# mkdir -p /opt/svn/myRespositories
[root@localhost ~]# svnadmin create /opt/svn/myRepositories

#配置Subversion

#设置用户名与密码:用户名richard,密码:123456

[root@localhost ~]# vi /opt/svn/myRespositories/conf/passwd

### This file is an example password file for svnserve.
### Its format is similar to that of svnserve.conf. As shown in the
### example below it contains one section labelled [users].
### The name and password for each user follow, one account per line.

[users]
# harry = harryssecret
# sally = sallyssecret
richard=123456

#配置权限控制

root@localhost ~]# vi /opt/svn/myRespositories/conf/authz
[aliases]
# joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average

[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe

# [/foo/bar]
# harry = rw
# &joe = r
# * =

# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r
[/]
richard=rw

#服务配置

[root@localhost ~]#  vi /opt/svn/myRespositories/conf/svnserve.conf

[general]
### These options control access to the repository for unauthenticated
### and authenticated users.  Valid values are "write", "read",
### and "none".  The sample settings below are the defaults.
#去出注释 anon
-access = none auth-access = write ### The password-db option controls the location of the password ### database file. Unless you specify a path starting with a /, ### the file's location is relative to the directory containing ### this configuration file. ### If SASL is enabled (see below), this file will NOT be used. ### Uncomment the line below to use the default password file.
#去除注释 password
-db = passwd ### The authz-db option controls the location of the authorization ### rules for path-based access control. Unless you specify a path ### starting with a /, the file's location is relative to the the ### directory containing this file. If you don't specify an ### authz-db, no path-based access control is done. ### Uncomment the line below to use the default authorization file.
#去除注释 authz
-db = authz ### This option specifies the authentication realm of the repository. ### If two repositories have the same authentication realm, they should ### have the same password database, and vice versa. The default realm ### is repository's uuid.
#修该其为版本库地址
realm = /opt/svn/myRespositories [sasl] ### This option specifies whether you want to use the Cyrus SASL ### library for authentication. Default is false. ### This section will be ignored if svnserve is not built with Cyrus ### SASL support; to check, run 'svnserve --version' and look for a line ### reading 'Cyrus SASL authentication is available.' # use-sasl = true ### These options specify the desired strength of the security layer ### that you want SASL to provide. 0 means no encryption, 1 means ### integrity-checking only, values larger than 1 are correlated ### to the effective key length for encryption (e.g. 128 means 128-bit ### encryption). The values below are the defaults. # min-encryption = 0 # max-encryption = 256
[root@localhost ~]#

#配置iptables端口

[root@localhost ~]# vi /etc/sysconfig/iptables

# Generated by iptables-save v1.4.7 on Sat Jul  6 16:32:15 2013
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [10:748]
-A INPUT -p tcp -m tcp --dport 1521 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
#加入这一句,将3690及svn默认使用的端口排除在外
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3690 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

#重启防火墙

[root@localhost ~]# service iptables restart
iptables: Flushing firewall rules: [  OK  ]
iptables: Setting chains to policy ACCEPT: nat mangle filter [  OK  ]
iptables: Unloading modules: [  OK  ]
iptables: Applying firewall rules: [  OK  ]
[root@localhost ~]# 

#启动SVN

[root@localhost ~]# svnserve -d -r /opt/svn/myRepositories

#检测3690端口是否被占用

[root@localhost ~]# netstat -ln |grep 3690
tcp        0      0 0.0.0.0:3690                0.0.0.0:*                   LISTEN 

#查看SVN进程

[root@localhost ~]# ps -ef|grep svn|grep -v grep
root      5617     1  0 Sep13 ?        00:00:00 svnserve -d -r /opt/svn/myRepositories

#关闭SVN进程

[root@localhost ~]# killall svnserve
原文地址:https://www.cnblogs.com/Richard-xie/p/3329133.html