Centos7 下的SVN安装与配置
1.关闭防火墙
临时关闭防火墙
systemctl stop firewalld 永久防火墙开机自关闭
systemctl disable firewalld 临时打开防火墙
systemctl start firewalld 防火墙开机启动
systemctl enable firewalld 查看防火墙状态
systemctl status firewalld
2.关闭SELinux
临时关闭SELinux
setenforce 临时打开SELinux
setenforce 查看SELinux状态
getenforce 开机关闭SELinux
编辑/etc/selinux/config文件,如下图,将SELINUX的值设置为disabled。下次开机SELinux就不会启动了。
3.安装svn
yum install subversion
查看版本
[root@heyong ~]# svn --version
svnserve, version 1.7. (r1542130)
compiled Apr , :: Copyright (C) The Apache Software Foundation.
This software consists of contributions made by many people; see the NOTICE
file for more information.
Subversion is open source software, see http://subversion.apache.org/ The following repository back-end (FS) modules are available: * fs_base : Module for working with a Berkeley DB repository.
* fs_fs : Module for working with a plain file (FSFS) repository. Cyrus SASL authentication is available.
4.创建SVN版本库
在/home下建立一个名为svn的仓库(repository),以后所有代码都放在这个下面,创建成功后在svn下面会多出几个文件夹。
[root@heyong ~]# mkdir -p /home/svn
[root@heyong ~]# svnadmin create /home/svn
[root@heyong ~]# ls /home/svn
conf db format hooks locks README.txt
[root@heyong ~]# cd /home/svn/conf/ [root@heyong conf]# ll
total
-rw-r--r-- root root Oct : authz
-rw-r--r-- root root Oct : passwd
-rw-r--r-- root root Oct : svnserve.conf 其中:
authz 是权限控制文件
passwd 是帐号密码文件
svnserve.conf 是SVN服务配置文件
5.配置passwd(创建用户)
[root@heyong conf]# vim passwd
[users]
test1=
test2=
6.配置authz
[root@heyong conf]# vi authz [/]
admin=rw #对/home/svn/下所有文件具有可读可写权限;
test1=r #只有只读权限;
test2=r #只有只读权限
*= #其它用户均无任何权限
7.使用用户分组
[root@heyong conf]# vi authz [groups]
group1 = admin
group2 = test1,test2 [/]
@group1 = rw #对/home/svn/下所有文件具有可读可写权限;
@group2 = r #只有只读权限;
* = #其它用户无任何权限
8.配置svnserve.conf
[root@heyong conf]# vim svnserve.conf 打开下面的5个注释
anon-access = read #匿名用户可读
auth-access = write #授权用户可写
password-db = passwd #使用哪个文件作为账号文件
authz-db = authz #使用哪个文件作为权限文件
realm = /home/svn # 认证空间名,版本库所在目录
注意:
最后一行的realm记得改成你的svn目录
打开注释时切记前面不要留有空格,否则可能有问题
9.启动与停止
[root@heyong conf]# svnserve -d -r /home/svn(启动) [root@heyong conf]#killall svnserve(停止)
注意:
上述启动命令中,-d表示守护进程, -r 表示在后台执行。停止还可以采用杀死进程的方式
10.客户端连接
TortoiseSVN中使用地址svn://你的IP ,输入用户名和密码就能连接成功。 默认端口3690,如果你修改了端口,那么要记得加上端口号。
修改默认端口
第一种方法:
svnserve -d -r /mnt/svn --listen-port 端口号 第二种方法:
svnserve -d -r /mnt/svn --listen-host IP+端口号
11.启动时遇到的问题
1.启动svnserve时出现cannot bind server socket:address already in use
解决方法:
方法一:找出svnserve id 杀死掉进程
netstat -ntlp
kill - id 方法二:重新指定一个端口号(默认端口3690)
svnserve -d --listen-port 端口号 -r /opt/svndata/repos
2.启动svnserve时出现svnserve.conf:12: Option expected的问题解决方法
svnserve.conf:12: Option expected
解决方法:
因为subversion读取配置文件svnserve.conf时,无法识别有前置空格的配置文件,删除前置空格即可;
如:anon-access = read
3.检查是否启动成功:(查看是否存在svnserve 进程)
[root@heyong svn]# ps -ef|grep svnserve
root : ? :: svnserve -d -r /home/svn
root : pts/ :: grep --color=auto svnserve
12.svn常见路径说明
1.查询安装的包
[root@heyong svn]# rpm -qa|grep subversion
subversion-libs-1.7.-.el7.x86_64
subversion-1.7.-.el7.x86_64
2.svn几个常用目录
/etc 一些设置文件放置的目录
/usr/bin 一些可执行文件
/usr/lib64 一些程序使用的动态函数库
/usr/share/doc 一些基本的软件使用手册与帮助文档
/usr/share/man 一些man page文件
3.列出某些包的具体文件
[root@heyong svn]# rpm -ql subversion-1.7.-.el7.x86_64
/etc/subversion
/etc/sysconfig/svnserve
/run/svnserve
/usr/bin/svn
/usr/bin/svnadmin
/usr/bin/svndumpfilter
/usr/bin/svnlook
/usr/bin/svnrdump
/usr/bin/svnserve
/usr/bin/svnsync
/usr/bin/svnversion
/usr/lib/systemd/system/svnserve.service