天天看点

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

一.安装方式

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日.第一次记录...

继续阅读