svn服务器的安装

来源:互联网 发布:网站抓取软件 编辑:程序博客网 时间:2024/04/29 09:55

svn服务器的安装

1.环境
操作系统 Redhat as4u4
subversion-1.4.5.tar.gz

2.编译apr-util-1.2.7.tar.gz,apr-1.2.7.tar.gzsvn还需要这两个,至少我机器上是
tar zxvf apr-1.2.7.tar.gz
cd apr-1.2.7
./configure
make
make install

tar zxvf apr-util-1.2.7.tar.gz
cd apr-util-1.2.7
./configure --with-apr=/usr/local/apr/
make
make install

3.编译svn,安装在/opt/svn
tar jxvf subversion-1.4.5.tar.bz2
cd subversion-1.4.5
./configure --prefix=/opt/svn --without-berkeley-db --with-zip --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr/
make
make install

3.将svn bin目录加入环境变量
vi /etc/profild.d/svn
PATH=$PATH:/opt/svn/bin/;export PATH

chmod +x /etc/profile.d/svn
. /etc/profile.d/svn

4.添加svn用户
useradd -M svn

5.创建版本库
mkdir /opt/svndata
cd /opt/svndata
svnadmin create test
chown svn.svn * -R

6.修改配置
cd test/conf
vi svnserve.conf
修改以下项
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
realm = test

vi passwd
[users]
rainharder = 123456

vi authz
[/]
rainharder = rw

[repository:/test]
rainharder = rw


注:
1.配置项前面不能有空格,否则会这种报错
Error * /opt/svndata/test/conf/svnserve.conf:12: Option expected
2.anon-access = read,会有报这个错
Error * Authorization failed
3.password-db,authz-db使用的文件可以加上路径,这样多个版本库可以共用一个认证库
4.权限配置文件中出现的用户名必须已在用户配置文件中定义。
5.对权限配置文件的修改立即生效,不必重启svn。
6.权限主体可以是用户组、用户或*,用户组在前面加@,*表示全部用户。权限可以是w、r、wr和空,空表示没有任何权限

可以手工启动
svnserve -d -r /opt/svndata/
也可以配置成服务

 

 

配置成服务

vi /etc/xinetd.d/svn
service svn
{
    disable = no
    port = 3690
    socket_type = stream
    protocol = tcp
    wait = no
    user = svn
    server = /opt/svn/bin/svnserve
    server_args = -i -r /opt/svndata
}

vi /etc/services 加入
svnserve 3690/tcp # Subversion svnserve

svn             3690/tcp                        # Subversion

/etc/init.d/xinetd restart

版本库迁徙
只要把整个目录移动就可以了,会保留包括修改记录在内的所有信息


 写了脚本完成大部分工作

 

 

#!/bin/sh

svnbin
=$1
svndata
=$2

# install dependencies
tar zxvf apr-
1.2.7.tar.gz
cd apr-1.2.7
./configure
make
make install

cd -
tar zxvf apr-util-
1.2.7.tar.gz
cd apr-util-1.2.7
./configure --with-apr=/usr/local/apr/
make
make install

# install svn
cd -
tar jxvf subversion-
1.4.5.tar.bz2
cd subversion-1.4.5
./configure --prefix=$svnbin --without-berkeley-db --with-zip --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr/
make
make install

# clean
cd -
rm apr-
1.2.7 apr-util-1.2.7 subversion-1.4.5 -rf

# add path evironment variables
svnpath
="PATH='$PATH':$svnbin/bin;export PATH"
echo $svnpath > /etc/profile.d/svn.sh
chmod 
+/etc/profile.d/svn.sh
source 
/etc/profile

# add user svn
(echo svn; echo svn) | useradd svn -M

# service conf
svnsrvconf
="
service svn
{
        disable = no
        port = 3690
        socket_type = stream
        protocol = tcp
        wait = no
        user = svn
        server = $svnbin/bin/svnserve
        server_args = -i -r $svndata
}
"

echo -e $svnsrvconf  > /etc/xinetd.d/svn

echo -e "svn             3690/tcp                        # Subversion" >> /etc/service

/etc/init.d/xinetd restart


原创粉丝点击