linux 部署subversion独立服务器

subversion(以下简称svn)是近年来崛起的版本管理工具,是cvs的接班人。

svn服务器有2种运行方式:独立服务器和借助apache。2种方式各有利弊。

svn存储版本数据也有2种方式:BDB和FSFS。因为BDB方式在服务器中断时,有可能锁住数据(jijian91在搞LDAP时就深受其害,没法根治),所以还是FSFS方式更安全一点。
1. svn服务器安装

A.yum安装
yum install subversion

B.tar包安装
操作系统: Redhat Linux AS4
获取svn安装包

最新版本subversion可以在http://subversion.tigris.org/getting.html 下载。
编译svn

以root用户登录。
将subversion-1.4.0.tar.gz和subversion-deps-1.4.0.tar.gz传到服务器。

tar xfvz subversion-1.4.0.tar.gz
tar xfvz subversion-deps-1.4.0.tar.gz
cd subversion-1.4.0
./configure –prefix=/opt/svn –without-berkeley-db –with-zlib
(注:以svnserve方式运行,不加apache编译参数。以fsfs格式存储版本库,不编译berkeley-db)
make clean
make
make install

vi /etc/profile,在/etc/profile最后加入:
PATH=$PATH:/opt/svn/bin
export PATH

C.svn测试

svnserve –version

如果显示如下,svn安装成功:

Copyright (C) 2000-2006 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
This product includes software developed by CollabNet (http://www.Collab.Net/).

The following repository back-end (FS) modules are available:

* fs_base : 模块与伯克利数据库(Berkeley DB)档案库一起工作。
* fs_fs : 模块与纯文本文件(FSFS)档案库一起工作。


2. svn配置
建立svn版本库目录

可建多个:
mkdir -p /opt/svn/repos

建立svn版本库

svnadmin create /opt/svn/repos

修改svn版本库配置文件

版本库1:
vi /opt/svn/repos/conf/svnserve.conf

内容修改为:
#去掉#[general]前面的#号
[general]
#匿名访问的权限,可以是read,write,none,默认为read
anon-access = none
#认证用户的权限,可以是read,write,none,默认为write
auth-access = write
#密码数据库的路径,去掉前面的#
password-db = passwd

注意:所有的行都必须顶格,否则报错。
建议:为了防止不必要的错误,建议你直接用我上面的内容覆盖掉文件原来的内容

配置允许访问的svn用户

vi /opt/svn/conf/pwd.conf

注意:对用户配置文件的修改立即生效,不必重启svn。

文件格式如下:
[users]
<用户1> = <密码1>
<用户2> = <密码2>

其中,[users]是必须的。下面列出要访问svn的用户,每个用户一行。示例:
[users]
alan = password
king = hello

注意
A. 一定要去掉[users]前面的#,否则svn只能以匿名用户登录,客户端不会出现登录窗口,除非你的anon不为none,否则将返回一个错误。
B. 这里的密码都是没有加密的



3. 启动svn
建立启动svn的用户

useradd svn
passwd svn
根据提示为用户svn设置密码
允许用户svn访问版本库

chown -R svn:svn /opt/svn

启动svn

su - svn -c "svnserve -d --listen-port 9900 -r /opt/svn"


其中:
su - svn表示以用户svn的身份启动svn
-d表示以daemon方式(后台运行)运行
--listen-port 9999表示使用9999端口,可以换成你需要的端口。但注意,使用1024以下的端口需要root权限
-r /opt/svn指定根目录是/opt/svn

检查:
ps aux|grep svnserve

如果显示如下,即为启动成功:
svn       1899  0.0  0.1  10564   760 ?        Ss   01:38   0:00 svnserve -d --listen-port 9900 -r /usr/hmsroot/svn

posted @ 2012-09-19 16:48  鞋带Er  阅读(241)  评论(0编辑  收藏  举报