您所在地位置:首页> / 应用软件 / SVN / >正文

Linux下svn 安装搭建配置流程

2012-07-07 16:32:43 分类:SVN 阅读(1326) 加入收藏

一、源文件编译安装。源文件共两个,为:

官方最新版下载:http://subversion.apache.org/download/

1.下载subversion源文件 subversion-1.6.1.tar.gz

http://subversion.tigris.org/downloads/subversion-1.6.18.tar.gz

2.下载subversion依赖文件 subversion-deps-1.6.1.tar.gz

http://subversion.tigris.org/downloads/subversion-deps-1.6.18.tar.gz

注意:两个文件版本必须一致,否则很容易产生问题.

二、解压文件,并编译配置 subversion

1.解压文件

[root@DB2 tfhudong] tar zxf subversion-1.6.18.tar.gz 解压后改名为subversion 
   
[root@DB2 tfhudong] tar zxf subversion-deps-1.6.18.tar.gz

注意:务必将两个文件解压到相同的目录下,否则会产生下面提到过的问题。

2.进入解压后的subversion目录

[root@DB2 ~] cd /usr/local/subversion/

3.创建安装目录

[root@DB2 subversion] mkdir /usr/local/svn

4.编译安装subversion

./configure --prefix=/usr/local/svn

svn有两种模式,一种FSFS为默认模式,另一种为BDB模式,建议使用FSFS。

如果出现错误:configure: error: no suitable apr found

则是因为上面的依赖文件没有减压到相同目录下导致。。。


可以http://www.sqlite.org/sqlite-amalgamation-3.6.13.tar.gz 

可以下载到
最新的Sqlite版本sqlite-amalgamation-3.6.13.tar.gz 

tar zxvf sqlite-amalgamation-3.6.13.tar.gz

进入文件夹sqlite-amalgamation找到sqlite3.c

将其复制到 subversion/sqlite-amalgamation/sqlite3.c 

sqlite-amalgamation不存在就手工创建 


(2)编译 安装

[root@DB2 subversion-1.6.1] make 
   
[root@DB2 subversion-1.6.1] make install

(3)测试安装是否成功

[root@DB2 subversion-1.6.1] /usr/local/svn/bin/svnserve --version

svnserve,版本 1.6.1 (r37116)

编译于 Mar 4 2011,10:07:53


(4)可以将命令添加到环境变量

vi /etc/profile

写入如下两句

PATH=$PATH:/usr/local/svn/bin
export PATH
source /etc/profile

5.做到这里基本svn的安装就ok了,下面我们来配置svn吧

三、配置svn

1.建立版本库目录(这个和安装目录请区分开,以下讲的是版本库)

[root@DB2 subversion] mkdir -p /home/svndata

2建立svn版本库

[root@DB2 subversion] svnadmin create /home/svndata

执行此命令后svn自动在repos目录下添加必须的配置文件.

[root@DB2 subversion] ls /home/svndata
conf db format hooks locks README.txt

注意:版本库不同于一般的文件夹, 直接在操作系统上新建文件无法被SVN识别, 必须使用import等命令将文件导入版本库.此为svn内部指令,create用于新建版本库。请使用svn help查看详细说明。

3修改版本库配置文件

[root@DB2 conf] vi /home/svndata/conf/svnserve.conf

各参数功能在配置文件的注释中有说明, 此处配置如下:

[general]

anon-access = none  使非授权用户无法访问
auth-access = write  使授权用户有写权限 
password-db = passwd  指明密码文件路径
authz-db = authz  访问控制文件
realm = /home/svndata/tccms 认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字。

  其它采用默认配置. 各语句都必须顶格写, 左侧不能留空格, 否则会出错.

指令简介:这是svn配置文件的格式,请按照以上格式书写。

4配置用户

[root@DB2 conf] vi /home/svndata/conf/passwd

插入如下内容

[users]
haifeng = 123456

可以添加多个,此为用户名密码对。

5配置权限

[root@DB2 conf] vi /home/svndata/conf/authz

插入以下内容

[/]
haifeng = rw

列出对各用户的授权。包括只读r,读写rw。没有列出的用户,则不允许访问。还可以对用户分组,具体请参考svn手册

6启动svn 服务

[root@DB2 conf] svnserve -d -r /home/svndata

指令简介:此指令用于启动svn服务,-d指明以守护模式运行,svn自动在3690端口监听。3690是默认端口,可以使用“--listen-port=”或者“--listen-host=”来指定其它

端口。-r选项用来指定svn服务的根目录,这样用户就可以使用相对路径访问,而不用提供完整路径。

7. 检查端口

[root@DB2 conf] netstat -ntlp|grep 3690
tcp        0      0 0.0.0.0:3690                0.0.0.0:*                   LISTEN      15087/svnserve

到此svn搭建配置完毕,可以在客户端进行连接使用。


8 将SVN的端口添加到服务器防火墙的允许列表中

subversion的默认端口是3690,我们将3690添加的服务器的允许列表中,打开iptables,添加如下一句配置:


iptables -A INPUT -p tcp --dport 3690 -j ACCEPT


设置开机自启动:

http://www.teamcen.com/news/201207/59.html

防火墙的设置

http://www.teamcen.com/news/201401/263.html

SVN同步代码到web目录的设置

http://www.teamcen.com/news/201401/264.html


  

9.验证

1)先导入文件夹 import



2)输入账户名密码




3)Svn检出目录

4)svn添加成功


10 FAQ: configure可能存在的问题及解决方法
1. configure: error: could not find library containing RSA_new
解决方法: yum install openssl-devel
2. configure: error: no XML parser was found: expat or libxml 2.x required
解决方法: # yum install expat-devel
3. configure: error: --with-zlib requires an argument.
解决方法: 去掉此选项


三、遇到的问题

问题1.将线上的SVN环境拷贝过来,配置好后,通过URL访问提示如下信息:Could not open the requested SVN filesystem
查看日志文件,发现:Expected FS format ’2′; found format ’3′

问题产生原因:

服务程序是1.4.x版本的svnserve或mod_dav_svn,版本库通过1.5.x版本的svnadmin或TortoiseSVN创建时,会产生这个问题

解决方法:

使用1.5以上的SVN来作为服务
或使用1.4系列的svnadmin或TortoiseSVN来创建版本库
或使用1.4.x系列创建新版本库,通过1.5.x版本备份并恢复原版本库到新版本库

问题2.

httpd: Syntax error on line 443 of 
/usr/local/apache2/conf/httpd.conf: Cannot load 
/usr/local/apache2/modules/mod_dav_svn.so into server: 
/usr/local/lib/libsvn_subr-1.so.0: undefined symbol: 
apr_memcache_add_server

问题产生的原因:

SVN 
依赖的APR版本要正确。如果Apache为2.0.x,对应的APR版本应为0.9.x;Apache为2.2.x,对应的APR版本应为1.2.x。
 由于subversion-deps包里的APR是0.9.x的,因此编译svn时要删除从deps里解压出来的apr, 
apr-util,改而使用apache 2.2里提供的。(这里指定为开始安装的apr目录),这一点知识非常重要。

解决方法:
下载apr-1.2.12.tar.gz与apr-util-1.2.12.tar.gz。

编译安装这两个包,然后重新安装下apache与subversion即可。

问题3.

/usr/bin/ld: cannot find -lexpatcollect2: ld returned 1 exit status
make[1]: *** [test/serf_get] 错误 1
make[1]: Leaving directory `/root/build/subversion-1.6.11/serf
‘make: *** [external-all] 错误 1

解决方法:

yum install expat-devel


上一篇:下载css样式中的图片文件到本地

下一篇:Linux中svn的安装使用