在LINUX 下配置SVN服务器

近期因公司业务需要,在公司建立起一个SVN服务器供研发管理源代码使用。以下为记录

第一章 安装



1. 采用源文件编译安装。源文件共两个,为:

subversion-1.6.13.tar.gz  (subversion 源文件)

subversion-deps-1.6.13.tar.gz  (subversion依赖文件)

注意文件版本必须一致,否则很容易产生各种奇怪的问题.

上面源文件可以通过以下方式下载

wget http://subversion.tigris.org/downloads/subversion-1.6.13.tar.gz

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

2.对源文件进行解压

tar xfvz subversion-1.6.13.tar.gz

tar xfvz subversion-deps-1.6.13.tar.gz

指令简介:tar 为解压命令,xfvz为tar命令的参数,用于解压tar.gz格式压缩的文件。

3. 解压后生成 subversion-1.6.13 子目录,两个压缩包解压后都会自动放到此目录下,不用手动更改。

4. 进入解压子目录:

cd subversion-1.6.13

5. 执行 ./configure --prefix=/opt/subversion 进行配置设定并指明安装目录. 注意prefix前是两个减号. 默认不带BDB包, 所以默认使用的是FSFS模式. 若想使用BDB模式需另外下载BDB包.建议使用FSFS模式.两种模式比较参考以下链接:

http://doc.iusesvn.com/show-21-1.html

指令简介:configure命令用于检查安装平台和目标特征,prefix用于指定路径。 /opt/subversion 就是这次SVN要装的目录。你也可以换成你想要安装到的目录

6. 执行 make 编译.

7. 执行 make install 安装.

8. 添加环境变量:

vi /etc/profile

在文件最后加入:

SVNPATH=$PATH:/opt/subversion/bin  
export SVNPATH
注:以上的/opt/subversion/更换成你安装SVN到的目录

9. 测试SVN是否安装成功,执行:

      svnserve --version

如果显示版本信息, 则安装成功.
 

 

第二章  配置

1. 建立版本库目录(可建立多个,新建库后以下各项都需重新配置。注意区别安装目录与版本库目录,以下讲的都是版本库目录)

mkdir –p /opt/svndata/repos



2. 建立svn版本库(与上面目录对应)

svnadmin create /opt/svndata/repos

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

注意:版本库不同于一般的文件夹, 直接在操作系统上新建文件无法被SVN识别, 必须使用import等命令将文件导入版本库.

此为svn内部指令,create用于新建版本库。请使用svn help查看详细说明。



3. 修改版本库配置文件

vi /opt/svndata/repos/conf/svnserve.conf

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

[general]

anon-access = none # 使非授权用户无法访问

auth-access = write # 使授权用户有写权限

password-db = passwd # 指明密码文件路径

authz-db = authz # 访问控制文件

4. 配置用户

vi /opt/svndata/repos/conf/passwd 

输入以下内容:

[users]

username1 = password1

username2 = password2

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

5.配置svn用户访问权限

注意:
* 权限配置文件中出现的用户名必须已在用户配置文件中定义。
* 对权限配置文件的修改立即生效,不必重启svn。
用户组格式:
[groups]
= ,
其中,1个用户组可以包含1个或多个用户,用户间以逗号分隔。
版本库目录格式:
[<版本库>:/项目/目录]
@<用户组名> = <权限>
<用户名> = <权限>
其中,方框号内部分可以有多种写法:
[/],表示根目录及以下,根目录是svnserve启动时指定的,我们指定为/opt/svndata,[/]就是表示对全部版本库设置权限。
[repos:/] 表示对版本库repos设置权限
[repos2:/abc] 表示对版本库repos2中的abc项目设置权限
[repos2:/abc/aaa] 表示对版本库repos2中的abc项目的aaa目录设置权限

 

权限主体可以是用户组、用户或*,用户组在前面加@,*表示全部用户。
权限可以是w、r、wr和空,空表示没有任何权限。
示例:
[groups]
admin = alan
[/]
@admin = rw
[repos1:/abc/aaa]
king = rw
[repos2:/pass]
king =
svn配置完毕。

6. 使用import导入文件

   新建好的版本库是空的,需要导入工作目录。

   $ svnadmin create /usr/local/svn/newrepos

   $ svnimport mytree file:///usr/local/svn/newrepos/some/project

   但是在导入后,用来的目录树并没有转换成工作拷贝,为了开始工作,还是需要运行svn checkout导出一个工作拷贝。因为导入后,文件在版本库中是以特殊的形式存在db文件夹中的,不能以明文的方式查看。必须使用svn checkout导出工作副本才能以正常方式查看。

第三章 设置启动

执行 /opt/subversion/bin/svnserve –d –r /opt/svndata/repos/  启动服务, 以deamon方式运行。

设置开机启动(因为SVN默认是不随着开机启动的服务,所以我们进行设置,使其开机就启动)

在/etc/rc.d/init.d/下新建一个脚本文件,

#!/bin/bash
#chkconfig:345 61 61
#description:svn
/opt/subversion/bin/svnserve –d –r /opt/svndata/repos/

建完以上脚本文件后,执行以下命令:
ln -s /etc/init.d/svn /etc/rc.d/rc3.d/S61svn   
ln -s /etc/init.d/svn /etc/rc.d/rc4.d/S61svn   
ln -s /etc/init.d/svn /etc/rc.d/rc5.d/S61svn   

修改脚本文件chmod 777 svn

chkconfig --add svn 添加服务

重新启动 Ok!

 

 

你可能感兴趣的:(linux,SVN,服务器,职场,休闲)