SVN安装记录.[个人安装整理版]

来源:互联网 发布:淘宝网广场舞服装店 编辑:程序博客网 时间:2024/06/02 23:39

一.安装方式
A>独立服务器
B>与APACHE结合使用

二.下载安装文件
    subversion-[版本号].tar.gz
    subversion-deps-[版本号].tar.gz
三.安装
    注:以subversion-1.5.5.tar.gz为例:
//解压文件
#tar xfvz subversion-1.5.5.tar.gz
#tar xfva subversion-deps-1.5.5.tar.gz

//配置安装文件
#./configure --prefix=/subversion --without-berkeley-db --with-zlib
//注:以独立方式运行,不加apache编译参数.以fsfs格式存储版本库,不编译berkeley-db
//--prefix=[安装路径]    **配置时不建立文件夹.在安装时才建立

//编译
#make clean
#make

//安装
#make install

//添加环境变量
#vi /etc/profile

-----文件更改-----

PATH = $PATH:/subversion/bin

-----文件更改完毕----

//注:PATH = $PATH:[安装路径]/bin 指向SUBVERSION安装路径下的/BIN文件夹.这里的安装路径在配置安装文件时已经指定为:/subversion

//更新环境变量
#export PATH

//开启服务
#svnsere -d

//测试服务是否开启
#netstat -ntlp
//注:如果显示里有如下信息,则服务开启成功
tcp    0    0 :::3690    :::*    list
EN    24544/svnserve
//注:此句表示服务SVNSERVE正在监听3690端口.3690为SVNSERVE的服务端口.使用TCP协议.24544为SVNSERVE服务的进程号(这个会不一样).只要看到SVNSERVE服务和3690端口开了即可.

四.建立仓库
    这里举例建立2个库文件的方法.2个库拥有自己的单独的SVNSERVE.CONF配置文件.但共享用户配置,和用户权限配置文件.
//建立仓库文件夹
#mkdir /svn/project1
#mkdir /svn/project2

//建立SVN库
#svnadmin create /svn/project1
#svnadmin create /svn/project2

//修改SVN库 PROJECT1.svnserve.conf配置文件
#vi /svn/project1/conf/svnserve.conf

-----文件更改-----

[general]
//匿名访问用户权限,ANON-ACCESS = READ / WRITE /NONE
anon-access = none

//认证用户权限,AUTH-ACCESS = READ / WRITE / NONE
auth-access = write

//用户权限文件路径
authz-db = /svn/conf/authz

//用户密码文件路径
password-db = /svn/conf/passwd

//库名   **多库时使用
realm = project1

-----文件更改完毕-----

//修改SVN库 PROJECT2/svnserve.conf配置文件
#vi /svn/project1/conf/svnserve.conf

-----文件更改-----
[general]
//匿名访问用户权限,ANON-ACCESS = READ / WRITE /NONE
anon-access = none

//认证用户权限,AUTH-ACCESS = READ / WRITE / NONE
auth-access = write

//用户权限文件路径
authz-db = /svn/conf/authz

//用户密码文件路径
password-db = /svn/conf/passwd

//库名   **多库时使用
realm = project2
-----文件更改完毕-----

//注:其两份配置文件大体相同.只是在最后配置REALM库名时不一样.

//建立用户密码文件
#vi /svn/conf/passwd

-----文件更改-----

[users]
admin = 123456
user = 654321

-----文件更改完毕------
//文件格式:
[users]
<username> = <password>
//以明文方式存储

//建立用户权限文件
#vi /svn/conf/authz

-----文件更改-----
[groups]
@admin = admin , user
[/]
@admin = rw
[project1:/]
admin = rw
[project2:/]
user = rw
-----文件更改完毕----
//格式说明
[groups]                                       //建立组
@<组名> = <用户1>,<用户2>,....     //配置组用户

[/]                                                //根目录权限
@<组名> = rw                              //组及其权限分配
<用户名> = rw                              //用户及其权限分配

[project1:/]                                   //库PROJECT1访问权限
@<组名> = rw                              //组及其权限分配
<用户名> = rw                              //用户及其权限分配

[project2:/]                                   //库PROJECT2访问权限
@<组名> = rw                              //组及其权限分配
<用户名> = rw                              //用户及其权限分配
//注:如[project1:/] 可以更详细的划分权限,如下:
[project1:/a/b]
//权限可以是w、r、wr和空,空表示没有任何权限 

五.停止服务
#killall svnserve

六.启动SVN服务
//多仓全部启动
#svnserve -d

//单仓启动
#svnseve -d -r /svn/project1
//参数说明
//-d 为后台启动
//-r 指定仓库根目录
//如果服务器为多IP.使用 --listen-host [IP]来监听

//开放端口  **在有防火墙的情况下.
svn默认端口是3690
#vi /etc/sysconfig/iptables 添加如下内容:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT

七.检查服务
#ps -ef|grep svnserve

 

八.客户端访问

 

SVN://服务器IP/仓库名

EG:

假设刚才配置的服务器IP为:192.168.1.1,要访问PROJECT1仓库则如下:

SVN://192.168.1.1/project1

 

 

---------------------

只是整理了一下而已.高手就们就不要BS了.呵呵..

参考文件如下:

http://blog.csdn.net/iinel/archive/2008/11/16/3310935.aspx

 

更新:

2009年2月27日.第一次记录...