Friday 1 August 2014

SVN Installation(chinese version)

svn 安装配置

第一步 服务器安装

一、安装apache
注:我们使用的是svnserve的,不使用http访问则不需要。

二、安装Subversion

1.      安装前的准备(Prerequisite)
注意:1.7及以后的版本不再提供subversion-deps-*下载,直接在subversion源码目录执行脚本get-deps.sh 即可自动安装依赖包。(即以下步骤在1.7后无需执行)

1) 安装gcc编译器
(一般已经安装的,检查: rpm -qa |grep gcc)

将系统光盘放入光驱,分别找到以下包:(名字类似即可)
cpp-4.1.2-42.el5.i386.rpm
kernel-headers-2.4-9.1.98.el.i386.rpm
glibc-headers-2.5-24.i386.rpm
glibc-devel-2.5-24.i386.rpm
libgomp-4.1.2-42.el5.i386.rpm
gcc-4.1.2-42.el5.i386.rpm

按照以下顺序安装,必须以以下顺序,否则会出现报错:
rpm -ivh cpp-4.1.2-42.el5.i386.rpm
rpm -ivh kernel-headers-2.4-9.1.98.EL.i386.rpm
rpm -ivh glibc-headers-2.5-24.i386.rpm
rpm -ivh glibc-devel-2.5-24.i386.rpm
rpm -ivh libgomp-4.1.2-42.el5.i386.rpm
rpm -ivh gcc-4.1.2-42.el5.i386.rpm
安装成功后:gcc如果提示中有文件目录那么就成功了
注意:以上是虚拟机中安装包,服务器的安装包是i386更改为x86,其中gcc-4.1.2-42.el5.i386.rpm仍然是i386

2)    安装libapr 和 libapr-util  
3)    安装expat (XML Parser)
4)    安装 libneon  (for http://)
5)    安装 openssl     


2.      安装Subversion
1)   下载 http://subversion.tigris.org/

2)    解压

3)    进入解压后的目录
执行 get-deps.sh  ,安装依赖包,然后编译安装subversion

# ./configure --prefix=/usr/local/subversion --with-ssl
#make
#make install

4)    运行#svnserve  --version看是否安装成功,如果安装成功则可以看到其 版本信息

note: 添加命令到路径中,在/etc/profile中添加: export PATH=$PATH:/usr/local/subversion/bin

5)  运行svnserve

/usr/local/subversion/bin/svnserve -d -r /opt/svndata/ &

如果svn服务器运行成功,则可以使用netstat -ntlp查看服务的端口, 如果3690号端口正在被使用,则表示开启成功,要停止此服务只要kill p id即可。

6)自动启动svnserve:添加启动命令到/ect/rc.local  

note: 添加命令到路径中,在/etc/profile中添加:
export PATH=$PATH:/usr/local/subversion/bin


第二步 服务器配置

1. 建立版本库目录,可建多个:
mkdir -p /opt/svndata/repos1
2.建立版本库:
svnadmin create /opt/svndata/repos1
3.修改版本库配置文件:
版本库1:
vi /var/repos/conf/svnserve.conf

内容修改为:
[general]
anon-access = none
auth-access = write
password-db = /usr/local/subversion/conf/pwd.conf
authz-db = /usr/local/subversion/authz.conf
realm = repos1

Note:方便期间,使用统一用户权限配置文件

4.配置允许访问的用户:
vi /../conf/pwd.conf

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

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

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

5.配置用户访问权限:
vi /../conf/authz.conf
注意:
* 权限配置文件中出现的用户名必须已在用户配置文件中定义。
* 对权限配置文件的修改立即生效,不必重启svn

用户组格式:
[groups]
<用户组名> = <用户1>,<用户2>
其中,1个用户组可以包含1个或多个用户,用户间以逗号分隔。

版本库目录格式:
[<版本库>:/项目/目录]
@<用户组名> = <权限>
<用户名> = <权限>

  其中,方框号内部分可以有多种写法:
[/],表示根目录及以下。根目录是svnserve启动时指定的,我们指定为/opt/svndata。这样,/就是表示对全部版本库设置权限。
[repos1:/],表示对版本库1设置权限
[repos2:/occi], ,表示对版本库2中的occi项目设置权限
[repos2:/occi/aaa] ,表示对版本库2中的occi项目的aaa目录设置权限

  权限主体可以是用户组、用户或*,用户组在前面加@,*表示全部用户。权限可以是w、r、wr和空,空表示没有任何权限。示例:
[groups]
admin = alan

[/]
@admin = rw

[repos1:/occi/aaa]
king = rw

[repos2:/pass]
king =
由于使用同一个用户配置文件,所以可以删除各个版本库下面无用的2个文件:
rm /opt/svndata/repos1/conf/authz
rm /opt/svndata/repos1/conf/passwd


权限的管理:
需要增加用户的话,只要在/opt/svn/conf下增加用户名和密码即可


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/liaoming321/archive/2009/09/17/4561855.aspx
--------------
启动参数:
svnserve -d -r /svnroot/repository/test1 --listen-host 192.168.1.18  --listen-port 3690

其中-d表示在后台运行,-r指定服务器的根目录,--listen-host来指定监听的ip地址, --listen-port 指定监听的端口




----------
error
----------
1、
配置基于svnserve的subversion服务器后,
在客户端访问subversion版本库时出现这个错误:
svnserve.conf:12: Option expected

为什么会出现这个错误呢,就是因为subversion读取配置文件svnserve.conf时,无法识别有前置空格的配置文件,
如: …… ……
像上面的配置文件中,anon-access是顶行的,没问题,而auth-access就存在前置空格,会导致这个错误。
要避免出现这个错误,应该在去掉这些行前的#时,也要顺手去掉前面的空格

2、svnadmin: 期待文件系统(FS)格式 “2”;找到格式“3”

机器中存在两个版本的SVN软件.
1.4.2与1.5.1
你用了低版本的工具去操作高版本的SVN库,所以报错了.
你在使用SVNadmin 之前,先定位到你安装的路径下再运行吧.如:/opt/xxxxx/bin/.svnadmin

3、org.tigris.subversion.javahl.ClientException
Authorization failed

如果用户名和密码输入出错了,然后,就算把原有的位置废弃掉,第二次再连接时,也是老样的错误。这个原因是第二次连接还是用第一次的用户名和密码,所以还是出现上面的错误。

解决方法:把C:\Documents and Settings\chris\Application Data\Subversion这个文件夹删掉,然后重新链接,再输入正确的用户名和密码。即可OK了!


---------
迁移
--------
由于服务器修改,或者备份的原因,你可能需要对Subversio的源进行迁移。
迁移方法有几中。 最直接的是将库文件直接copy到新的位置就好。
如果原来的svn版本和新的svn版本不一样的话, 这样迁移并不是很安全。

更安全的方式也很简单,如下:

1. 导出:
svnadmin dump ~/svn/xxx > svndump

2. 将svndump文件、原conf/ copy到新服务器;
svnadmin create /path/xxx创建一个库目录

3. 导入dump文件:
svnadmin load /home/svn/xxx < svndump

4、原conf/ 覆盖新的conf

完成

No comments:

Post a Comment