CentOS6.8下SVN服务器搭建及使用
centos 6.8搭建SVN

查看系统环境
(1)查看系统版本
[root@node-005 ~]# cat /etc/RedHat-release 
CentOS release 6.8 (Final)
(2)查看系统全部信息
[root@node-005 ~]# uname -a 
Linux node-005 2.6.32-642.15.1.el6.x86_64 #1 SMP Fri Feb 24 14:31:22 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
(3)查看系统内核
[root@node-005 ~]# uname -r 
2.6.32-642.15.1.el6.x86_64
安装SVN
1、修改yum仓库配置(可不做,我这里做事保留SVN安装包)
[root@node-005 ~]# sed -i 's#keepcache=0#keepcache=1#g' /etc/yum.conf 
[root@node-005 ~]# grep keepcache /etc/yum.conf    #rpm包不删除 
keepcache=1 
[root@node-005 ~]# yum -y install subversion
2、查找查找SVN安装包
[root@node-005 ~]# find / -name subversion-1.6.11-15.el6_7.x86_64.rpm 
/var/cache/yum/x86_64/6/base/packages/subversion-1.6.11-15.el6_7.x86_64.rpm 
[root@node-005 ~]# tree /var/cache/yum/x86_64/6/base/packages/ 
/var/cache/yum/x86_64/6/base/packages/
├── apr-1.3.9-5.el6_2.x86_64.rpm 
├── apr-util-1.3.9-3.el6_0.1.x86_64.rpm 
├── libproxy-0.3.0-10.el6.x86_64.rpm 
├── libproxy-bin-0.3.0-10.el6.x86_64.rpm 
├── libproxy-python-0.3.0-10.el6.x86_64.rpm 
├── neon-0.29.3-3.el6_4.x86_64.rpm 
├── pakchois-0.4-3.2.el6.x86_64.rpm 
├── perl-URI-1.40-2.el6.noarch.rpm 
├── subversion-1.6.11-15.el6_7.x86_64.rpm 
└── tree-1.5.3-3.el6.x86_64.rpm 
  
0 directories, 10 files 
[root@node-005 packages]# rpm -aq subversion 
subversion-1.6.11-15.el6_7.x86_64
配置并启动SVN
1、创建SVN版本库根目录(svndata)及密码权限目录(svnpasswd)
[root@node-005 ~]# mkdir -p /application/svndata 
[root@node-005 ~]# mkdir -p /application/svnpasswd 
[root@node-005 ~]# tree /application/svn* 
/application/svndata
/application/svnpasswd
  
0 directories, 0 files
2、启动SVN服务指定服务的SVN根目录
[root@node-005 ~]# svnserve -d -r /application/svndata/ # -d  
后台运行;-r 指定运行目录
# 注:查看svnserver命令帮助
[root@node-005 ~]# svnserve --help 
用法: svnserve [-d | -i | -t | -X] [options] 
  
有效选项: 
  -d [--daemon]            : 后台模式 
  -i [--inetd]            : inetd 模式 
  -t [--tunnel]            : 隧道模式 
  -X [--listen-once]      : 监听一次方式(调试用) 
  -r [--root] ARG          : 服务的根目录 
  -R [--read-only]        : 强制只读;覆盖版本库配置文件 
  --config-file ARG        : 从文件 ARG 读取配置 
  --listen-port ARG        : 监听端口 
                            [方式: daemon, listen-once] 
  --listen-host ARG        : 监听主机名称或IP地址 
                            [方式: daemon, listen-once] 
  -T [--threads]          : 使用线程代替进程 [方式: daemon] 
  --foreground            : 在前台运行(调试用) 
                            [方式: daemon] 
  --log-file ARG          : svnserve 日志文件 
  --pid-file ARG          : 写进程 PID 到文件 ARG 
                            [方式: daemon, listen-once] 
  --tunnel-user ARG        : 隧道用户名(默认是当前UID对应的用户名) 
                            [方式: tunnel] 
  -h [--help]              : 显示本帮助 
  --version                : 显示程序版本信息
3、查看服务是否启动
(1)查看进程
[root@node-005 ~]# ps -ef |grep svn 
root      67481  0 15:25 ?        00:00:00 svnserve -d -r /application/svndata/
root      67526658  0 15:34 pts/0    00:00:00 grep svn
(2)查看端口
[root@node-005 ~]# netstat -lntup 
Active Internet connections (only servers) 
Proto Recv-Q Send-Q Local AddressForeign AddressState      PID/Program name  
tcp        00 0.0.0.0:36900.0.0.0:*                  LISTEN      6748/svnserve      
tcp        00 0.0.0.0:3306                0.0.0.0:*                  LISTEN      5217/mysqld        
tcp        00 0.0.0.0:210.0.0.0:*                  LISTEN      2160/vsftpd        
tcp        00 0.0.0.0:220.0.0.0:*                  LISTEN      5581/sshd          
tcp        00 127.0.0.1:6310.0.0.0:*                  LISTEN      1315/cupsd        
tcp        00 127.0.0.1:250.0.0.0:*                  LISTEN      1905/sendmail      
tcp        0  0 :::80                      :::*                        LISTEN      1925/httpd        
tcp        00 :::22:::*                        LISTEN      5581/sshd          
tcp        00 ::1:631:::*                        LISTEN      1315/cupsd        
udp        00 0.0.0.0:6310.0.0.0:*1315/cupsd
(3):已知端口号查看进程
[root@node-005 ~]# lsof -i tcp:3690 
COMMAND  PID USERFD  TYPE DEVICE SIZE/OFF NODE NAME 
svnserve 6748 root    3u  IPv448866      0t0  TCP *:svn (LISTEN) 
[root@node-005 ~]# netstat -lntup |grep 3690 
tcp        00 0.0.0.0:36900.0.0.0:*                  LISTEN      6748/svnserve
创建SVN版本库
1、新的Subversion项目
(1)创建一个新的Subversion项目(版本库)
[root@node-005 ~]# svnadmin create /application/svndata/sadoc 
[root@node-005 ~]# ll /application/svndata/sadoc/ 
总用量 24 
drwxr-xr-x 2 root root 4096 4月  20 15:47 conf 
drwxr-sr-x 6 root root 4096 4月  20 15:47 db 
-r--r--r-- 1 root root    2 4月  20 15:47 format
drwxr-xr-x 2 root root 4096 4月  20 15:47 hooks 
drwxr-xr-x 2 root root 4096 4月  20 15:47 locks 
-rw-r--r-- 1 root root  229 4月  20 15:47 README.txt
(2)查看帮助
[root@node-005 ~]# svnadmin --help 
一般用法: svnadmin SUBCOMMAND REPOS_PATH  [ARGS & OPTIONS ...] 
使用“svnadmin help 
使用“svnadmin --version”查看程序的版本号和文件系统模块。 
  
可用的子命令: 
  crashtest 
  create 
  deltify 
  dump 
  help (?, h) 
  hotcopy 
  list-dblogs 
  list-unused-dblogs 
  load 
  lslocks 
  lstxns 
  pack 
  recover 
  rmlocks 
  rmtxns 
  setlog 
  setrevprop 
  setuuid 
  upgrade 
  verify 
  
[root@node-005 ~]# svnadmin help create 
create: 用法: svnadmin create REPOS_PATH 
  
在 REPOS_PATH 创建一个新的空版本库。 
  
有效选项: 
  --bdb-txn-nosync        : 在提交事务时禁用fsync [BDB] 
  --bdb-log-keep          : 禁用自动删除日志文件 [BDB] 
  --config-dir ARG        : 从目录 ARG 读取用户配置文件 
  --fs-type ARG            : 版本库类型: “fsfs”(默认)或“bdb” 
  --pre-1.4-compatible    : 使用与1.4之前版本兼容的格式 
  --pre-1.5-compatible    : 使用 Subversion 1.5 之前版本的格式 
  --pre-1.6-compatible    : 使用与 1.6 之前版本兼容的格式
2、仓库用户权限配置
(1)配置允许用户solin读写访问
①备份配置文件
[root@node-005 ~]# cd /application/svndata/sadoc/conf/ 
[root@node-005 conf]# /bin/cp svnserve.conf svnserve.conf.solin$(date +%F)
②过滤要修改的配置
[root@node-005 conf]# egrep "\-access|\-db =" svnserve.conf 
# anon-access = read 
# auth-access = write 
# password-db = passwd 
# authz-db = authz
③修改后的参数(可以用sed替换,也可用vi/vim直接修改)
[root@node-005 conf]# egrep "\-access|\-db =" svnserve.conf 
# anon-access = none  #不允许匿名访问 
# auth-access = write  #允许可写 
# password-db = /application/svnpasswd/passwd  #密码数据库,存放SVN吗 
# authz-db = /application/svnpasswd/authz      #控制权限的数据库
另:修改后对比
[root@node-005 conf]# egrep "\-access|\-db =" svnserve.conf 
# anon-access = read 
anon-access = none 
# auth-access = write 
auth-access = write 
# password-db = passwd 
password-db = /application/svnpasswd/passwd
# authz-db = authz 
authz-db = /application/svnpasswd/authz
[root@node-005 conf]# diff svnserve.conf.solin2017-04-20 svnserve.conf 
12a13 
> anon-access = none 
13a15 
> auth-access = write 
20a23 
> password-db = /application/svnpasswd/passwd
27a31 
> authz-db = /application/svnpasswd/authz
3、配置authz、passwd证书文件
(1)把密码证书文件模板复制到相关目录并修改文件权限
[root@node-005 conf]# cp authz passwd /application/svnpasswd/ 
[root@node-005 conf]# ll /application/svnpasswd/ 
总用量 8 
-rw-r--r-- 1 root root 1080 4月  20 17:22 authz 
-rw-r--r-- 1 root root  309 4月  20 17:22 passwd
[root@node-005 conf]# chmod 700 /application/svnpasswd/* 
[root@node-005 conf]# ll /application/svnpasswd/ 
总用量 8 
-rwx------ 1 root root 1080 4月  20 17:22 authz 
-rwx------ 1 root root  309 4月  20 17:22 passwd
(2)authz、passwd的配置
vi /application/svnpasswd/authz
添加如下: 
[groups] 
bd_sa = solin,test
# [/foo/bar] 
[sadoc:/] 
# [repository:/baz/fuz] 
@bd_sa = rw 
test1 = r
vi /application/svnpasswd/passwd
添加如下: 
[users] 
solin = bdyun 
test = bdyun
文章题目:CentOS6.8下SVN服务器搭建及使用
分享链接:http://jxruijie.cn/article/djccpsp.html

 
                