CentOS 环境下搭建svn服务器

心不动则不痛 提交于 2019-12-08 13:52:24

第一、安装svn程序,yum install -y subversion

(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     //需要手动创建目录/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
testusername=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

testusername=rw  #意思是testusername对于根目录具有读写权限,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


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!