本文描述的方法是利用操作系统的软件源的方式安装,不涉及源码编译安装及其他安装方式。
安装前准备:
安装前准备:
1.
保证操作系统的原生软件源可以更新
2.
保证操作系统可以访问互联网
下载安装脚本:
1)登录svn官方网站,网址:http://subversion.apache.org/packages.html
1)登录svn官方网站,网址:http://subversion.apache.org/packages.html
2)
根据你所使用的操作系统找到安装脚本下载地址。如下图:
CollabNet只提供svn客户端,而且必须注册才能下载。
OpenSUSE project(SUSE官方提供的安装脚本)。
Wandisco必须注册才能下载
(本文所使用的就是该脚本)。
单击【OpenSUSE project】,如下图:
单击【openSUSE】,如下图:
根据操作系统的版本选择适应的脚本执行,即开始安装svn。安装过程中如有错误提示,解决错误即可,在这里不做具体解释,因为错误原因不定,如错误无法解决多思考多百度。
3)apache服务器安装(略)。
4)创建测试版本库。脚本如下:
CODE
|
#mkdir /svn
#
创建
svn
根路劲
#cd /svn
#svnadmin create project1
#
在
svn
根路劲下创建
project1
版本库
#chown –R wwwrun:www /svn
#
将
svn
根路劲及其子路径的宿主变更为
apache
的用户
|
5) 使用mod_dav_svn访问Subversion仓库(svn绑定apache服务)。
关于mod_dav_svn模块
由于Subversion需要版本化的控制,因此标准的HTTP协议不能满足需求。要让Apache与Subversion协同工作,就要使用WebDAV(Web-based Distributed Authoring and Versiong)Web分布式创作和版本控制协议。WebDAV是HTTP 1.1的扩展,关于WebDAV的规范和工作原理,可以参考IETF RFC 2518。
mod_dav_san模块就是作为Subversion与Apache之间的接口,通过它,Apache就可以访问版本库,并且可以让客户端也使用HTTP的扩展协议WebDAV/DeltaV进行访问。
修改apache配置
需要激活Apache加载mod_dav_svn模块。
修改/etc/apache2/ httpd.conf配置文件的内容为:
(由于apache及svn的安装方式不同,可能LoadModule已经被载入或.so存放路劲不同)
CODE
|
LoadModule
dav_module /usr/lib/apache2/mod_dav.so
LoadModule
dav_svn_module /usr/lib/apache2/mod_dav_svn.so
LoadModule
authz_svn_module /usr/lib/apache2/mod_authz_svn.so
<Location /repos>
DAV svn
SVNParentPath /svn/
#指定svn仓库的父路径,这样可以实现多版本库管理
AuthType Basic
AuthName "Subversion repository"
AuthUserFile /svn/passwd
#访问版本库的用户名及密码
Require valid-user
#必须验证用户权限
AuthzSVNAccessFile /svn/ authz
#版本库权限控制
</Location>
|
LoadModule的文件不知道路劲的话,可以使用【find / -name mod_dav_svn*】命令搜索。
passwd文件创建使用htpasswd2命令(apache版本不同,可能命令名称不一样)。例如:htpasswd2 -c ./passwd test,-c表示创建新文件、./passwd表示使用或创建当前路劲下的passwd文件、test表示添加test账号,接着会提示输入密码及验证输入的密码。如果文件已经存在不要加“-c”,否则会删除原文件,重新创建文件。
authz文件为一个utf8格式的文本文件,内容如下:
CODE
|
[groups]
admin=user1
dev=user2
[/]
#/
下的权限配置对全部版本库有效
@admin=rw
#admin
组有读写权限
@doc=r
#doc
组有读权限
test=rw
#test
用户有读写权限
#
如果
apache
中配置的是
SVNParentPath
,则可以配置下面的多版本库,否则无效
[project1:/]
#
针对
project1
版本库单独配置权限
@admin=rw
#admin
组有读写权限
@doc=r
#doc
组有读权限
test=rw
#test
用户有读写权限
|
apache启动及自启动。apache启动与停止使用【service apache2 start/stop】,自启动使用【chkconfig apache2 on】。
总结:svn的安装过程中由于安装环境、安装方法及软件版本的不同,可能出现命令名称不同,以及出现的问题也不一样,需要在理解了整个安装过程后才能成功安装,否则会被各种问题阻碍,多分析、多思考、多百度、多问,问题总会被解决的。
参考网址: