1. 安装
centos(我这里使用的是CentOS7)下yum命令即可方便的完成安装
yum install subversion
测试安装是否成功:
svnserve --version
2. 建立版本库
创建svn数据目录(根据自己情况选择保存目录):
mkdir -p /data/svn/
创建版本库(以lancent为例):
svnadmin create /data/svn/lancent/
如果删除版本库:
rm -rf /data/svn/lancent
3. 配置svn配置文件
每个版本库创建之后都会生成svnserve.conf主要配置文件。编辑它:
vi /data/svn/lancent/conf/svnserve.conf
编辑示例:
[general] anon-access = none #控制非鉴权用户访问版本库的权限 auth-access = write #控制鉴权用户访问版本库的权限 password-db = passwd #指定用户名口令文件名 authz-db = authz #指定权限配置文件名 realm = lancent #指定版本库的认证域,即在登录时提示的认证域名称
4. 编辑svn用户配置文件
vi /data/svn/lancent/conf/passwd
编辑示例:
[users] admin = admin #用户,密码 fuhd = fuhd #用户,密码 test = test #用户,密码
5. 编辑svn权限控制配置文件
vi /data/svn/lancent/conf/authz
编辑示例:
[groups] admin = admin1,admin2 #admin为用户组,等号之后的admin为用户 test = test1,test2 [lancent:/] #表示根目录(/var/svn/lancent),lancent: 对应前面配置的realm = lancent @admin = rw #表示admin组对根目录有读写权限,r为读,w为写 [lancent:/test] #表示test目录(/var/svn/lancent/test) @test = rw #表示test组对test目录有读写权限
6. 启动,查看和停止SVN服务
启动SVN服务:
# -d : 守护进程 -r : svn数据根目录
svnserve -d -r /data/svn #用root权限启动
查看SVN服务:
ps aux|grep svnserve #默认端口为:3690
停止SNV服务:
killall svnserve
或者查到服务的进程号:
ps -A | grep svn kill 4094
7. 配置防火墙端口
首先要明确CentOS7的默认防火墙为firewallD。subversion的默认端口为3690,如果没有打开会报错:
firewall-cmd --permanent -add-port=3690/tcp firewall-cmd --reload
如果依旧是使用 iptables 管理防火墙,则修改:
vi /etc/sysconfig/iptables
然后重启 iptables 服务:
systemctl restart iptables.service
看3690端口是否正常开放
netstat -ntlp
8.设置开机自启动
安装好的svn服务端,默认是不会开机自启动的,每次开机自己启动会很麻烦,我们可以把它设成开机启动。
编辑rc.local文件
vi /etc/rc.d/rc.local
在文件末尾加入以下命令:
/usr/bin/svnserve -d -r /data/svn
我们在用终端操作的时候,可以直接使用以下命令启动SVN:
svnserve -d -r /data/svn
但是在 /etc/rc.d/rc.local 文件中,svnserve 路径保险起见,最好写绝对路径,因为启动的时候,环境变量也许没加载。
不知道svnserve安装到哪里了? 可以使用 whereis 命令查找一下:
whereis svnserve
然后为 rc.local 文件添加执行权限
chmod +x /etc/rc.d/rc.local
保存退出,重启并从客户端进行测试。如果报这样的错:svn: E204900: Can’t open file ‘/var/svn/lancent/format’: Permission denied的错误。那就是与SELinux有关系,目前我还不太会用SELinux,那就先把SELinux关闭吧,后面学会了,回过头来再改这一段!!!!:
临时关闭:
setenforce 0
永久关闭:
vi /etc/sysconfig/selinux
修改:
SELINUX = disable #值修改为disable.
客户端:
svn://IP地址/lancent