1、检查svn版本是否有安装
[root@huangkai200 ~]# rpm -qa subversion
[root@huangkai200 ~]#
执行上面的命令,没有任何显示,表示没有安装,如果有,执行 yum remove subversion 删除。
2、执行安装
[root@huangkai200 ~]# yum -y install subversion
等待安装完成即可
3、配置和启动svn服务器
创建目录 :
[root@huangkai200 ~]# mkdir -p /data/svn/data # svn数据保存目录
[root@huangkai200 ~]# mkdir -p /data/svn/passwd #svn公共用户密码与权限目录
启动 svn服务:
[root@huangkai200 ~]#svnserve -d -r /data/svn/data/
# -d 守护进程启动
# -r 指定svn目录
查看服务进程:
[root@huangkai200 ~]# ps -ef|grep svn
root 1748 1 0 21:44 ? 00:00:00 svnserve -d -r /data/svn/data/
root 1771 1401 0 21:45 pts/0 00:00:00 grep --color=auto svn
[root@huangkai200 ~]#
查看端口号
svn默认使用的端口号为 3690
[root@huangkai200 ~]# lsof -i:3690
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
svnserve 1748 root 3u IPv4 24804 0t0 TCP *:svn (LISTEN)
[root@huangkai200 ~]# netstat -lntup|grep 3690
tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN 1748/svnserve
[root@huangkai200 ~]#
4、创建svn仓库
[root@huangkai200 data]# svnadmin create hk #创建仓库, hk 是仓库名称
[root@huangkai200 data]# ls
hk
[root@huangkai200 data]# cd hk/
[root@huangkai200 hk]# ll # 查看仓库目录结构
total 16
drwxr-xr-x 2 root root 51 Mar 12 21:58 conf # svn仓库配置文件
drwxr-sr-x 6 root root 4096 Mar 12 21:58 db #数据存放文件
-r--r--r-- 1 root root 2 Mar 12 21:58 format
drwxr-xr-x 2 root root 4096 Mar 12 21:58 hooks
drwxr-xr-x 2 root root 39 Mar 12 21:58 locks
-rw-r--r-- 1 root root 229 Mar 12 21:58 README.txt
[root@huangkai200 hk]# cd conf/
[root@huangkai200 conf]# ll
total 12
-rw-r--r-- 1 root root 1080 Mar 12 21:58 authz #权限管理文件
-rw-r--r-- 1 root root 309 Mar 12 21:58 passwd #用户与密码文件
-rw-r--r-- 1 root root 3090 Mar 12 21:58 svnserve.conf #主配置文件,包含上面authz 与 passwd文件
[root@huangkai200 conf]#
5、修改 svnserver.conf 主配置文件 :
[root@huangkai200 conf]# vi svnserve.conf
| 1 ### This file controls the configuration of the svnserve daemon, if you anon-access = none # svn默认每个仓库会指定密码文件 ,为了多个仓库统一密码管理 ,将此选项设置为公共的密码文件 |
6、拷贝authz 和 passwd 文件 到 公共用户与密码的目录
[root@huangkai200 hk]# cp authz passwd /data/svn/passwd
[root@huangkai200 passwd]# ll # 可以看到,如下两个文件的权限为 644(文件所有者可读可写,所在组可读,其它组可读,这样,其它用户就可以看到这两个文件 ,文件的安全性就降低了)
total 8
-rw-r--r-- 1 root root 1080 Mar 12 22:27 authz
-rw-r--r-- 1 root root 329 Mar 12 22:25 passwd
[root@huangkai200 passwd]#
修改文件权限:
[root@huangkai200 passwd]# chmod 600 * #(给文件所有者可读写权限,其它用户没有权限)
[root@huangkai200 passwd]# ll
total 8
-rw------- 1 root root 1080 Mar 12 22:27 authz
-rw------- 1 root root 329 Mar 12 22:25 passwd
[root@huangkai200 passwd]#
7、svn添加账户
在 passwd文件中[users]下按例子添加账户
[root@huangkai200 passwd]# vi passwd
| ### This file is an example password file for svnserve. [users] |
8、修改authz配置文件
[root@huangkai200 passwd]# vi authz
| ### This file is an example authorization file for svnserve. [aliases] [groups] # [/foo/bar] # [repository:/baz/fuz] [hk:/] huangkai = rw #权限配置规则 |
修改 authz 与 passwd文件 不需要重启svn服务器,但修改 svnserver.conf 必须重启使配置生效,
authz 与 passwd 配置文件不能写错,否则服务可能不能正常启动。
启动服务
[root@huangkai200 passwd]# lsof -i:3690
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
svnserve 1748 root 3u IPv4 24804 0t0 TCP *:svn (LISTEN)
root@huangkai200 passwd]# kill -9 1748
[root@huangkai200 passwd]# ps -ef|grep svn
root 3252 1401 0 22:58 pts/0 00:00:00 grep --color=auto svn
[root@huangkai200 passwd]# svnserve -d -r /data/svn/data/
9、svn 开机启动
首先:编写一个启动脚本svn_startup.sh,我放在/data/svn/svn_startup.sh
| #!/bin/bash /usr/bin/svnserve -d -r /data/svn/data/ |
这里的svnserve路径保险起见,最好写绝对路径,因为启动的时候,环境变量也许没加载。
绝对路径怎么查?使用 which svnserve查看
[root@huangkai200 hk]# which svnserve
/usr/bin/svnserve
[root@huangkai200 hk]#
然后修改该脚本的执行权限
[root@huangkai200 svn]# chmod 700 svn_startup.sh
最后:加入自动运行
[root@huangkai200 svn]#vi /etc/rc.d/rc.local
在末尾添加脚本的路径,如:/data/svn/svn_startup.sh
看看 /etc/rc.d/rc.local的权限,如果没有可执行权限,则需要设置 , chmod 711 /etc/rc.d/rc.local
现在,你可以重启一下试试了
10、svn 客户端连接 :
svn://ip地址:3690/hk
本文详细介绍如何在Linux环境下安装配置Subversion (SVN)服务器,包括检查版本、安装、配置服务、创建仓库、权限管理及开机启动流程。
7058

被折叠的 条评论
为什么被折叠?



