CentOS6.6 安装subversion

参考:

http://my.oschina.net/u/163208/blog/186797

http://www.111cn.net/sys/CentOS/85289.htm

多个版本库配置:

http://blog.sina.com.cn/s/blog_75ad10100102v70v.html

1、首先看系统自带的有subversion 版本没?

[root@localhost ~]# rpm -qa |grep subversion

如果有,则用

[root@localhost ~]# yum remove subversion 删除;

 

cd /usr/local/src/ && wget http://apache.dataguru.cn/subversion/subversion-1.8.14.tar.bz2

解压:

[root@localhost src]# tar -jxvf subversion-1.8.14.tar.bz2

下载subversion依赖的sqlite数据库,放置到subversion的文件夹下:

[root@localhost src]# cd subversion-1.8.14 && wget http://www.sqlite.org/sqlite-amalgamation-3071501.zip && unzip sqlite-amalgamation-3071501.zip  && mv sqlite-amalgamation-3071501 sqlite-amalgamation

编译、安装:

[root@localhost subversion-1.8.14]# cd ~

[root@localhost ~]# yum install perl-ExtUtils-Embed

[root@localhost ~]# cd /usr/local/src/subversion-1.8.14/

[root@localhost subversion-1.8.14]# ./configure --prefix=/opt/subversion

[root@localhost subversion-1.8.14]# make && make install

先查看一下安装成功了没有

[root@localhost subversion-1.8.14]# cd /opt/subversion

[root@localhost subversion]#./bin/svnserve --version

svnserve, version 1.8.14 (r1692801)

   compiled Sep 22 2015, 12:55:17 on x86_64-unknown-linux-gnu

 

Copyright (C) 2015 The Apache Software Foundation.

This software consists of contributions made by many people;

see the NOTICE file for more information.

Subversion is open source software, see http://subversion.apache.org/

 

The following repository back-end (FS) modules are available:

 

* fs_fs : Module for working with a plain file (FSFS) repository.

* fs_base : Module for working with a Berkeley DB repository.

 

Cyrus SASL authentication is available.

以上提示表示成功了。

加入系统变量,为了以后的svn操作方便:

[root@localhost subversion-1.8.14]# vim /etc/profile

将这句 export PATH=$PATH:/opt/subversion/bin添加到配置文件中,

[root@localhost subversion-1.8.14]# source /etc/profile 让配置文件立即生效;

 配置:

#创建版本库目录 repos目录名可以自定义

[root@localhost home]# mkdir -p /home/svn/repos

 #创建版本

[root@localhost home]# svnadmin create /home/svn/repos/svnProject

此时在/home/svn/repos/svnProject下有若干文件:



 配置文件在conf下:

 其中svnserve.conf是版本库配置,passwd是用户配置文件,authz是权限配置文件。

修改svnserve.conf配置文件如下:

[general]
# 使非授权用户无法访问
anon-access = none
# 使授权用户有写权限
auth-access = write
# 指明密码文件路径
password-db = /home/svn/repos/svnProject/conf/passwd

# 访问控制文件
authz-db = /home/svn/repos/svnProject/conf/authz

# 项目名称(UUID

realm = svnProject

修改用户文件passwd:

[users]
user01 = 123456
user02 = 123456
注意,前面是用户名,后面是密码。
修改authz按提示修改即可。

[groups]
admin = username
[/]
@admin = rw
# [repos:/abc/aaa]
# king = rw
# [repos:/pass]
# king =svn
注意:
* 权限配置文件中出现的用户名必须已在用户配置文件(也就是passwd文件)中定义。
* 对权限配置文件的修改立即生效,不必重启svn。
用户组格式:
[groups]
= ,
其中,1个用户组可以包含1个或多个用户,用户间以逗号分隔。
版本库目录格式:
[<版本库>:/项目/目录]
 
@<用户组名> = <权限>
<用户名> = <权限>
 
其中,方框号内部分可以有多种写法:
[/],表示根目录及以下,根目录是svnserve启动时指定的,我们指定为/home/svndata,[/]就是表示对全部版本库设置权限。
[repos:/] 表示对版本库repos设置权限;
[repos:/abc] 表示对版本库repos中的abc项目设置权限;
[repos:/abc/aaa] 表示对版本库repos中的abc项目的aaa目录设置权限;
权限主体可以是用户组、用户或*,用户组在前面加@,*表示全部用户。
权限可以是w、r、wr和空,空表示没有任何权限。
 
我的配置如下:
 
[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe
admin = admin,xiongxh #管理组
test = guoby #测试组
product = zhongjk #产品组
dev = xiongxh,yic #开发组 要将用户名放到对于的用户组中,该用户才有权限
 
[/]
 
@admin = rw
@test = r
@product = rw
@dev = rw

启动SVN服务:

svnserve -d --listen-port 9001 -r /home/svn/repos/svnProject
-d :表示以daemon方式(后台运行)运行;
--listen-port 9999 :表示使用9999端口,可以换成你需要的端口。但注意,使用1024以下的端口需要root权限;
-r  /home/svndata  :指定根目录是 /home/svnd
 
 
最后:svn://ip:端口/repos/svnPerject 就可以用passwd中的用户名,密码搞定了!

猜你喜欢

转载自yjph83.iteye.com/blog/2245270