CentOS 环境下搭建svn服务器

分类:CentOS运维 阅读:12132 次

第一、安装svn程序,yuminstall-ysubversion

(rmp -ql subversion 查看安装位置

svnserve --version 查看安装的版本)

[root@iZ25gd15vigZ ~]#yum install subversion
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
epel/metalink | 6.4 kB 00:00
* base: mirrors.yun-idc.com
* epel: mirrors.yun-idc.com
* extras: mirrors.yun-idc.com
* rpmforge: mirrors.neusoft.edu.cn
* updates: mirrors.yun-idc.com
base | 3.7 kB 00:00
epel | 4.4 kB 00:00
extras | 3.3 kB 00:00
rpmforge | 1.9 kB 00:00
updates | 3.4 kB 00:00
updates/primary_db | 5.3 MB 00:00
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package subversion.x86_64 0:1.6.11-10.el6_5 will be installed
--> Processing Dependency: perl(URI) >= 1.17 for package: subversion-1.6.11-10.el6_5.x86_64
--> Processing Dependency: apr >= 1.3.0 for package: subversion-1.6.11-10.el6_5.x86_64
--> Processing Dependency: libneon.so.27()(64bit) for package: subversion-1.6.11-10.el6_5.x86_64
--> Processing Dependency: libaprutil-1.so.0()(64bit) for package: subversion-1.6.11-10.el6_5.x86_64
--> Processing Dependency: libapr-1.so.0()(64bit) for package: subversion-1.6.11-10.el6_5.x86_64
--> Running transaction check
---> Package apr.x86_64 0:1.3.9-5.el6_2 will be installed
---> Package apr-util.x86_64 0:1.3.9-3.el6_0.1 will be installed
---> Package neon.x86_64 0:0.29.3-3.el6_4 will be installed
--> Processing Dependency: libgnutls.so.26(GNUTLS_1_4)(64bit) for package: neon-0.29.3-3.el6_4.x86_64
--> Processing Dependency: libproxy.so.0()(64bit) for package: neon-0.29.3-3.el6_4.x86_64
--> Processing Dependency: libpakchois.so.0()(64bit) for package: neon-0.29.3-3.el6_4.x86_64
--> Processing Dependency: libgnutls.so.26()(64bit) for package: neon-0.29.3-3.el6_4.x86_64
---> Package perl-URI.noarch 0:1.40-2.el6 will be installed
--> Running transaction check
---> Package gnutls.x86_64 0:2.8.5-14.el6_5 will be installed
--> Processing Dependency: libtasn1.so.3(LIBTASN1_0_3)(64bit) for package: gnutls-2.8.5-14.el6_5.x86_64
--> Processing Dependency: libtasn1.so.3()(64bit) for package: gnutls-2.8.5-14.el6_5.x86_64
---> Package libproxy.x86_64 0:0.3.0-4.el6_3 will be installed
--> Processing Dependency: libproxy-python = 0.3.0-4.el6_3 for package: libproxy-0.3.0-4.el6_3.x86_64
--> Processing Dependency: libproxy-bin = 0.3.0-4.el6_3 for package: libproxy-0.3.0-4.el6_3.x86_64
---> Package pakchois.x86_64 0:0.4-3.2.el6 will be installed
--> Running transaction check
---> Package libproxy-bin.x86_64 0:0.3.0-4.el6_3 will be installed
---> Package libproxy-python.x86_64 0:0.3.0-4.el6_3 will be installed
---> Package libtasn1.x86_64 0:2.3-6.el6_5 will be installed
--> Finished Dependency Resolution


Dependencies Resolved


================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
subversion x86_64 1.6.11-10.el6_5 updates 2.3 M
Installing for dependencies:
apr x86_64 1.3.9-5.el6_2 base 123 k
apr-util x86_64 1.3.9-3.el6_0.1 base 87 k
gnutls x86_64 2.8.5-14.el6_5 updates 346 k
libproxy x86_64 0.3.0-4.el6_3 base 39 k
libproxy-bin x86_64 0.3.0-4.el6_3 base 8.2 k
libproxy-python x86_64 0.3.0-4.el6_3 base 8.4 k
libtasn1 x86_64 2.3-6.el6_5 updates 238 k
neon x86_64 0.29.3-3.el6_4 base 119 k
pakchois x86_64 0.4-3.2.el6 base 21 k
perl-URI noarch 1.40-2.el6 base 117 k


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


Total download size: 3.4 M
Installed size: 14 M
Is this ok [y/N]: y
Downloading Packages:
(1/11): apr-1.3.9-5.el6_2.x86_64.rpm | 123 kB 00:00
(2/11): apr-util-1.3.9-3.el6_0.1.x86_64.rpm | 87 kB 00:00
(3/11): gnutls-2.8.5-14.el6_5.x86_64.rpm | 346 kB 00:00
(4/11): libproxy-0.3.0-4.el6_3.x86_64.rpm | 39 kB 00:00
(5/11): libproxy-bin-0.3.0-4.el6_3.x86_64.rpm | 8.2 kB 00:00
(6/11): libproxy-python-0.3.0-4.el6_3.x86_64.rpm | 8.4 kB 00:00
(7/11): libtasn1-2.3-6.el6_5.x86_64.rpm | 238 kB 00:00
(8/11): neon-0.29.3-3.el6_4.x86_64.rpm | 119 kB 00:00
(9/11): pakchois-0.4-3.2.el6.x86_64.rpm | 21 kB 00:00
(10/11): perl-URI-1.40-2.el6.noarch.rpm | 117 kB 00:00
(11/11): subversion-1.6.11-10.el6_5.x86_64.rpm | 2.3 MB 00:00
--------------------------------------------------------------------------------
Total 5.4 MB/s | 3.4 MB 00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : libproxy-python-0.3.0-4.el6_3.x86_64 1/11
Installing : libproxy-bin-0.3.0-4.el6_3.x86_64 2/11
Installing : libproxy-0.3.0-4.el6_3.x86_64 3/11
Installing : apr-1.3.9-5.el6_2.x86_64 4/11
Installing : apr-util-1.3.9-3.el6_0.1.x86_64 5/11
Installing : perl-URI-1.40-2.el6.noarch 6/11
Installing : libtasn1-2.3-6.el6_5.x86_64 7/11
Installing : gnutls-2.8.5-14.el6_5.x86_64 8/11
Installing : pakchois-0.4-3.2.el6.x86_64 9/11
Installing : neon-0.29.3-3.el6_4.x86_64 10/11
Installing : subversion-1.6.11-10.el6_5.x86_64 11/11
Verifying : libproxy-0.3.0-4.el6_3.x86_64 1/11
Verifying : pakchois-0.4-3.2.el6.x86_64 2/11
Verifying : libtasn1-2.3-6.el6_5.x86_64 3/11
Verifying : subversion-1.6.11-10.el6_5.x86_64 4/11
Verifying : neon-0.29.3-3.el6_4.x86_64 5/11
Verifying : gnutls-2.8.5-14.el6_5.x86_64 6/11
Verifying : perl-URI-1.40-2.el6.noarch 7/11
Verifying : libproxy-python-0.3.0-4.el6_3.x86_64 8/11
Verifying : libproxy-bin-0.3.0-4.el6_3.x86_64 9/11
Verifying : apr-1.3.9-5.el6_2.x86_64 10/11
Verifying : apr-util-1.3.9-3.el6_0.1.x86_64 11/11


Installed:
subversion.x86_64 0:1.6.11-10.el6_5


Dependency Installed:
apr.x86_64 0:1.3.9-5.el6_2 apr-util.x86_64 0:1.3.9-3.el6_0.1
gnutls.x86_64 0:2.8.5-14.el6_5 libproxy.x86_64 0:0.3.0-4.el6_3
libproxy-bin.x86_64 0:0.3.0-4.el6_3 libproxy-python.x86_64 0:0.3.0-4.el6_3
libtasn1.x86_64 0:2.3-6.el6_5 neon.x86_64 0:0.29.3-3.el6_4
pakchois.x86_64 0:0.4-3.2.el6 perl-URI.noarch 0:1.40-2.el6


Complete!

第二、创建svn版本库的目录,svnadmin create /var/svn/svnrepos

[root@iZ25gd15vigZ svn]#svnadmin create /var/svn/svnrepos
[root@iZ25gd15vigZ svn]# cd /var/svn/svnrepos/
[root@iZ25gd15vigZ svnrepos]# ls
conf db format hooks locks README.txt

第三、添加用户,配置权限,进入conf目录(该svn版本库配置文件)
authz文件是权限控制文件
passwd是帐号密码文件
svnserve.conf SVN服务配置文件

[root@iZ25gd15vigZ svnrepos]# cd conf
[root@iZ25gd15vigZ conf]# ls
authz passwd svnserve.conf

[root@iZ25gd15vigZ conf]#vi 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
zhangshibo=123456 # 等号左边是用户名,等号右边是密码

[root@iZ25gd15vigZ conf]# vi authz

### This file is an example authorization file for svnserve.

### Its format is identical to that of mod_authz_svn authorization
### files.
### As shown below each section defines authorizations for the path and
### (optional) repository specified by the section name.
### The authorizations follow. An authorization line can refer to:
### - a single user,
### - a group of users defined in a special [groups] section,
### - an alias defined in a special [aliases] section,
### - all authenticated users, using the '$authenticated' token,
### - only anonymous users, using the '$anonymous' token,
### - anyone, using the '*' wildcard.
###
### A match can be inverted by prefixing the rule with '~'. Rules can
### grant read ('r') access, read-write ('rw') access, or no access
### ('').


[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:/var/svn/svnrepos]
# @harry_and_sally = rw
# * = r
zhangshibo=rw #意思是zhangshibo对于根目录具有读写权限,r为读,w为写

[root@iZ25gd15vigZ conf]# vi svnserve.conf

### This file controls the configuration of the svnserve daemon, if you
### use it to allow access to this repository. (If you only allow
### access through http: and/or file: URLs, then this file is
### irrelevant.)


### Visit http://subversion.tigris.org/ for more information.


[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 = read #匿名用户可读
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 = /var/svn/svnrepos #版本库所在目录


[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

第四、启动svn版本库

svnserve -d -r /var/svn/svnrepos

[root@iZ25gd15vigZ conf]#svnserve -d -r /var/svn/svnrepos

svn的访问路径svn://123.57.17.118