Linux下svn编译安装及使用说明

说明:
subversion(svn)是近年来崛起的版本管理工具,是cvs的接班人。svn有2种运行方式:独立服务器和借助apache。2种方式各有利弊。
svn存储版本数据也有2种方式:BDB和FSFS。因为BDB方式在服务器中断时,有可能锁住数据,所以还是FSFS方式更安全一点。
我这边编译安装的是:Subversion 1.6.20,具体可看官网:http://subversion.tigris.org/。最新的是1.7.8,但发现编译安装1.6.20的更快。1.7.8还需要另外编译安装apr,apr-util,yum带的版本太旧。

实现:
一).编译安装sbuversion
1.获取并解压subversion,有两个安装包:subversion-1.6.20.tar.gz,subversion-deps-1.6.20.tar.gz

# cd /usr/local/src
# wget http://subversion.tigris.org/downloads/subversion-1.6.20.tar.gz  //下载subversion源文件 subversion-1.6.20.tar.gz
# wget http://subversion.tigris.org/downloads/subversion-deps-1.6.20.tar.gz  //下载subversion依赖文件 subversion-deps-1.6.20.tar.gz
# tar zxvf subversion-1.6.20.tar.gz
# tar zxvf subversion-deps-1.6.20.tar.gz
//subversion,subversion-deps这两个文件解压到相同文件夹

 
2.编译,安装

# cd subversion-1.6.20
# ./configure  --prefix=/usr/local/subversion
# make && make install

 
3.测试安装是否成功

[root@solar svn]# /usr/local/subversion/bin/svnserve --version
svnserve, version 1.6.20 (r1426281)
   compiled Mar 19 2013, 13:15:33

 

二).做到这里svn基本就安装好了,下面我们通过配置svn,来说明其用法。
1.建立版本库目录(这个请和安装目录区分开,以下讲的是版本库)

# mkdir -p /home/svn/repos1

 
2.建立svn版本库

# /usr/local/subversion/bin/svnadmin create /home/svn/repos1
//执行此命令后svn自动在repos目录下添加必须的配置文件。
# ls /home/svn/repos1
conf db format hooks locks README.txt
//注意:版本库不同于一般的文件夹, 直接在操作系统上新建文件无法被SVN识别, 必须使用import等命令将文件导入版本库.此为svn内部指令,create用于新建版本库。请使用svn help查看详细说明。

 
3.修改版本库配置文件

# vim /home/svn/repos1/conf/svnserve.conf
各参数功能在配置文件的注释中有说明, 修改配置为如下:
[general]
anon-access = none # 使非授权用户无法访问
auth-access = write # 使授权用户有写权限
password-db = /home/svn/passwd # 指明密码文件路径
authz-db = /home/svn/authz # 访问控制文件,限制用户对哪些目录有读写权限
realm = repos1 # 认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字。
//其它采用默认配置. 各语句都必须顶格写, 左侧不能留空格, 否则会出错.
//指令简介:这是svn配置文件的格式,请按照以上格式书写。

 
4.配置用户

# vim /home/svn/passwd //插入如下内容
[users]
solar = 123456
test = 123456
//可以添加多用户,用户名密码同一行。

 
5.配置权限

# vim /home/svn/authz  //插入以下内容
[/]
solar = rw
test = r
//列出对各用户的授权。包括只读r,读写rw。没有列出的用户,则不允许访问。还可以对用户分组,具体请参考svn手册

 
6.启动svn 服务

# /usr/local/subversion/bin/svnserve -d -r /home/svn/repos1
//此指令用于启动svn服务,-d指明以守护模式运行,svn自动在3690端口监听。3690是默认端口,可以使用“--listen-port=”或者“--listen-host=”来指定其它端口。-r选项用来指定svn服务的根目录,这样用户就可以使用相对路径访问,而不用提供完整路径。

 
7.检查端口

# netstat -ntlp|grep 3690
tcp        0      0 0.0.0.0:3690                0.0.0.0:*                   LISTEN      15087/svnserve
//到此svn搭建配置完毕,可以在客户端进行连接使用。

 
8.测试
mysql

附录:
附录1. 若出现authz failed,请检查/home/svn/repos1/conf/svnserve.conf中password-db,authz-db路径位置是否正确!!

发表评论

邮箱地址不会被公开。 必填项已用*标注