Centos下,yum命令即可完成安装:
$sudo yum installsubversion
或者
#yum installsubversion
测试是否安装成功:
$svnserve --version
注意上面的命令是两个减号。
使用#netstat-ntlp可以查看目前系统网络服务的运行情况。
建立版本库:
创建SVN数据目录:
(subversion默认是把var/svn作为数据根目录的,开机默认启动也是这个位置)
$ sudo mkdir -p/var/svn
创建版本库:
$sudo svnadmin create /var/svn/<version-db-name>
如果删除版本库:
$sudo rm -rf/var/svn/<version-db-name>
配置svn配置文件
每个版本库创建之后都会生成svnserve.conf主要配置文件,编辑这个文件:
$sudo vim /var/svn/<version-db-name>/conf/svnserve.conf
编辑示例:
[general]
anon-access=none #控制非鉴权用户访问版本库的权限
auth-access=write #控制鉴权用户访问版本库的权限
password-db=passwd #指定用户名口令文件名
authz-db=authz #指定权限配置文件名
realm=<version-db-name> #指定版本库的认证域,即在登陆时提示的认证域名称
编辑svn用户配置文件:
$sudo vim /var/svn/<version-db-name>/conf/passwd
编辑示例:
[users]
admin=admin-pwd #用户名=密码
fuhd=fuhd-pwd #用户名=密码
test=test-pwd #用户名=密码
编辑svn控制权限配置文件:
$sudo vim /var/svn/<verskion-db-name>/conf/authz
编辑示例:
[groups]
admin=admin #admin为用户组,等号之后的admin为用户名
test=fuhd,test
[<version-db-name>:/] #表示根目录(/var/svn/<version-db-name>),<version-db-name>:对应前面配置文件里面配置的realm=<version-db-name>
@admin=rw#表示admin组对根目录有读写权限。
[<version-db-name>:/test]#表示test目录(/var/svn/<version-db-name>/test)
@test=rw #表示test组对test目录有读写权限
启动、查看和停止svn服务:
启动:
#-d:守护进程,-r:SVN数据根目录
$sudo svnserve -dr /var/svn #用root权限启动
在使用上面的命令之后,可能导致后面的systemctl启动服务的时候报错,原因是服务默认使用的端口号被占用,用#ps -ef指令查看后发现
svnserve进程已经启动,可以使用kill指令先关闭进程,然后再执行systemctl启动服务的操作。
查看svn服务:
$ps aux|grep svnserve #默认端口为:3690
配置防火墙端口:
首先要明确centos7的防火墙为firewalld和之前的版本不同,之前可能是iptables。subversion默认的端口是3690,如果没有打开会报错:
$sudo firewall-cmd --permanent --add-port=3690/tcp
$sudo firewall-cmd --reload
检索项目和切换项目的url
项目检索:
$svn checkout svn://192.168.0.xxx/XXX_project. #使用checkout服务器资源本地目录
切换项目url:
$svn switch --relocate svn://192.168.0.aaa/xxx_projectsvn://192.168.0.bbb/xxx_project #使用switch迁移fromto新的地址
设置开机启动:
$sudo systemctl enable svnserve.service #注意:根目录必须是/var/svn这样才能设置成功
#设置开机启动后就可以按照下面的方式开启或停止服务了。
$sudo systemctl start svnserve.service
$sudo systemctl stopsvnserve.service
保存退出,重启,并从客户端进行测试。
如果报错如下:svn:E204900:Cannot open file '/var/svn/<subversion-db-name>/format';Permissiondenied.就表明与SELinux有关系。
临时关闭SELinux:
$sudosetenforce 0 #注意报错代码不一定是E204900.
永久关闭:
$sudo vim /etc/sysconfig/selinux
修改:
SELINUX=disable #值修改为disable