在Redhat AS 5.2上安装CollabNet Subversion服务器,在Subversio
在Redhat AS 5.2上安装CollabNet Subversion服务器,在Subversio
Subversion是一个自由,开源的版本控制系统。在Subversion管理下,文件和目录可以超越时空。Subversion将文件存放在中心版本库里。这个版本库很像一个普通的文件服务器,不同的是,它可以记录每一次文件和目录的修改情况。这样就可以籍此将数据恢复到以前的版本,并可以查看数据的更改细节。正因为如此,许多人将版本控制系统当作一种神奇的“时间机器”。
本文是记录在Redhat as 5.2系统上安装CollabNet Subversion服务器过程:
下载部署包
到www.collab.net/developers/tools/下载client和server端:
客户端:CollabNetSubversion-client-1.6.12-1.i386.rpm
下载地址:http://www.open.collab.net/cn/downloads/subversion/redhat.html
选择此项:CollabNet Subversion command-Line Client v1.6.12 (for Red Hat Linux)
服务器端:CollabNetSubversion-server-1.6.12-1.i386.rpm
下载地址:http://www.open.collab.net/cn/downloads/subversion/redhat1.5.html
选择此项:CollabNet Subversion Server v1.6.12 (for Red Hat Linux)
安装
安装Server端之前需要安装client端。
# rpm -Uvh CollabNetSubversion-client-1.6.12-1.i386.rpm
# rpm -Uvh CollabNetSubversion-server-1.6.12-1.i386.rpm
配置
创建一个Repository目录:
mkdir -p /opt/svn/repos
运行配置脚本:
/opt/CollabNet_Subversion/bin/Configure-CollabNet-Subversion
根据提示创建项目库、用户等,配置完成后,自动启动SVN服务器。
用户名存储位置:/etc/opt/CollabNet_Subversion/conf/svnserve_auth_file
重启服务:
service collabnet_subversion restart
访问
svn://localhost/YOUR-REPOS-NAME (基于svnserver)
或者http://localhost/YOUR-REPOS-NAME (基于Apache)
与系统原有Apache集成
由于Collabnet的SVN自带了一个apache server,如果要使用系统原有的Apache server,可以在配置时选择svnserve方式,然后手工配置原来的Apache与SVN集成。
RHEL 使用的是httpd-2.2.3-11.el5_1.3.i386.rpm,Collabnet的官方网站提到Collabnet SVN不支持与RHEL原有Apache进行集成(http://subversion.open.collab.net/ds/viewMessage.do?dsForumId=3&dsMessageId=313586)不过有一位中国的兄弟回复可以通过加入Collabnet的库目录到系统库搜索目录来解决。
复制SVN模块
复制/opt/CollabNet_Subversion/modules/目录下的mod_authz_svn.so和mod_dav_svn.so 到/usr/lib/httpd/modules
修改httpd.conf文件
# vi /etc/httpd/conf/httpd.conf
增加:
LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so <Location /svn> DAV svn SVNParentPath /opt/svn/repos/ AuthType Basic AuthName "Subversion" AuthUserFile /opt/svn/passwdfile #AuthzSVNAccessFile /opt/svn/accessfile Require valid-user </Location>
把Collabnet的库目录加入系统配置
此步骤主要解决启动Apache时出现如下错误。
Starting httpd: httpd: Syntax error on line 995 of /etc/httpd/conf/httpd.conf: Cannot load /etc/httpd/modules/mod_dav_svn.so into server: /opt/CollabNet_Subversion/lib/libsvn_subr-1.so.0: undefined symbol: apr_memcache_add_server
# vi /etc/ld.so.conf
增加一行:
/opt/CollabNet_Subversion/lib
#ldconfig
注:增加CollabNet lib后出现了Xwin启动出错:
nautilus can't be used now Nautilus can't be used now, due to an unexpected error from Bonobo when attempting to register the file manager view server.
网上说这是因为CollabNet lib下的libz.*库所引起的。可以使用另外一种方法,修改/etc/init.d/httpd脚本:
start() { echo -n $"Starting $prog: " check13 || exit 1 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/CollabNet_Subversion/lib LANG=$HTTPD_LANG daemon --pidfile=${pidfile} $httpd $OPTIONS RETVAL=$? echo [ $RETVAL = 0 ] && touch ${lockfile} return $RETVAL }
创建用户认证文件
例如增加2个用户test和test1,使用命令:
# htpasswd -cm /opt/svn/passwdfile test
New password:
Re-type new password:
Adding password for user test
# htpasswd -m /opt/svn/passwdfile test1
New password:
Re-type new password:
Adding password for user test1
注意:创建密码文件需要带-c参数, -m 表示使用更安全的MD5算法
问题
使用http方式无法创建新文件夹,而使用svn://协议没有问题,错误信息:
Can't open file 'svn/db/txn-current-locks':permission denied
进入svn的reposity所在的目录
# chown csvn:apache * -R
# chmod -R 770 *
其他SVN工具
SVNManager: http://svnmanager.org/
支持的功能:
Create, remove, load and dump repositories
Manage user accounts for access to the repositories
Manage groups for acces to the repositories
Invite users by email to create an account on the server
评论暂时关闭