首页 > 知识百科 > 正文

CentOS 6.5安装配置SVN服务器 原创

​项目使用SVN来管理,所以需要给服务器安装SVN服务器端。
这里仅使用svn://协议来访问SVN服务器,不启用sasl。
客户端系统均为Windows,使用起来很简单,这里就不用指定。

文章仅针对1.6.11版本。在1.7.14版本上测试时,发现创建的用户无效,客户端结帐时不提示输入用户名,指定用户名也没用,只能使用匿名登录,不知道为什么。

一、安装

#检查安装是否是低版本的SVNrpm -qa subversion# 卸载旧版本SVNyum remove subversion# 安装SVNyum install< /span> subversion# 检验已安装的SVN版本信息svn --version

二、创建和配置代码库

创建代码库

SVN软件安装完成后需要创建SVN库

$ svnadmin create /opt/svn/repository

如果目录不存在,svnadmin会创建此目录。执行上面的命令后,将自动创建起repository库,查看/opt/svn/repository文件夹发现包含了conf, db, format, hooks, locks, README.txt等文件,说明一个SVN库已经建立。
进入上面生成的文件夹conf下,有以下几个文件authz, passwd, svnserve.conf。其中authz是权限控制,可以设置哪些用户可以访问哪些目录,passwd是设置用户和密码的,svnserve.conf是设置svn相关操作的。

svnserve.conf

这个文件控制svnserve的配置。包含两个选择:[general]和[sasl],由于不使用sasl,所以只需要考虑如何设置[general]即可。

[general]#匿名访问的权限,可以none,read,writeanon-access = none#授权用户的权限,可以none,read,writeauth-access = write#密码数据文件的路径,如不以/开头,则为相对路径password-db = passwd#访问控制文件的路径,如不以/,则为相对路径 authz-db = authz#认证命名空间,subversion会在认证提示里显示,并且作为服务器存储的关键字,不同的库需要不同的realmrealm = 第一个存储库

密码数据文件

[users]yankz = 密码

这样就建立了了用户yankz,密码为密码。可参照此处建立多个用户,一行一个。

访问控制文件

[别名]可以来设置别名,这里没用;[ groups]用于设置小组;其他选择用于设置每个目录的具体权限。

[groups]admin = yankz,houyf,taoxd,ljying[/]yankz = rw@admin = r* =[/ljying]ljying = rw@admin = r* =*

这里设置的是thor小组包含四个成员,根目录yankz具有读权限,admin其他成员具有读权限,其他人没有权限。ljying目录,ljying具有读权限,admin其他成员具有读权限,其他人

三、启动和停止

执行“svnserve -d -r /opt/svn/repository”就启动了,默认使用3690端口。
如果已经有svn在运行,可以更换一个端口运行
svnserve -d -r /opt/svn/repository --listen-port 3391
这样配置,每个端口都有一个版本库,可以通过这种方式运行多个svnserve。
执行“killall svnserve”就停止了所有的svnserve。如果要停止某些svnserve,就先用“ ps -ef | grep svnserve”获取对应的pid,用“kill -9 pid”停止。

四、多版本库控制

除了通过使用不同的端口来运行多个svnserve,还还有另一种方式。
如果svnserve的启动参数-r所指定的目录直接指定到版本库,例如上面的情况,此时一个svnserve只能为一个版本库工作。
现在某目录下通过svnadmin create创建多个版本库,并-r指定到这些版本库的上级目录,如“svnserve -d -r /opt/svn”,这种情况,一个svnserve为多个版本库可以工作。
使用类似的“svn://192.168.0.1/project1”可以访问project1,这样的“svn://192.168.0.1/project2”可以访问project2。
另外,如果某个访问控制文件需要同时对多个版本库进行控制,就应该指定具体的库,每个目录必须写成[版本库的名称:路径]的形式,像这样:

[groups]admin = user1[project1:/]@admin = rw 

五、防火墙配置

在 /etc/sysconfig/iptables 中添加以下内容:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT
然后重启防火墙:
service iptables restart

六、参考

Centos搭建SVN服务器三步曲
权限文件authz配置

CentOS 6.5安装配置SVN服务器 原创由知识百科栏目发布,感谢您对的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“CentOS 6.5安装配置SVN服务器 原创