CENTOS6下SVN安装配置

安装

yum install -y subversion

验证

svnserve --version
whereis svnserve

创建多版本库

  • 创建目录+初始化版本库
mkdir -p /data/svn
cd /data/svn
## 版本库1 
mkdir svn_1
svnadmin create svn_1
## 版本库2 
mkdir svn_2
svnadmin create svn_2
  • 权限管理
    在每个版本库下面都有一个conf文件夹
[root@server conf]# ls -l svn_1/conf
总用量 12  
-rw-r--r--. 1 root root 1080 4月  28 14:31 authz
-rw-r--r--. 1 root root  309 4月  28 14:31 passwd
-rw-r--r--. 1 root root 2283 4月  28 14:32 svnserve.conf
## passwd是密码文件  
## authz是权限文件  
## svnserve.conf是本版本库的配置文件

使用一个密码文件和权限文件管理所有版本库

cp svn_1/conf/passwd passwd
cp svn_1/conf/authz authz

使用svn目录下的passwd和authz文件管理所有版本库

## 修改各个版本库的配置文件
vim /svn_1/conf/svnserve.conf
## 不允许匿名
anon-access = none
auth-access = write
## 密码文件位置
password-db = ../../passwd
## 权限文件位置
authz-db = ../../authz

## 添加用户名, 密码
vim /data/svn/passwd
admin = 123456
user = 123456
noauthz = 123456

## 权限配置
vim /data/svn/authz
[groups]
g_admin = admin
g_user = user
[svn_1:/]
@g_admin = rw
[svn_1:/user]
@g_user = rw
[svn_1:/user/noauthz]
noauthz =

权限使用自底而上的方式进行控制,如果在当前目录下无法找到该用户的权限, 则查看上一级目录是否有权限
,直到根目录位置,例如上例:
- 查看user用户的权限
1. 在访问noauthz目录时,没有user的权限配置,向上一级查看
2. 在user目录由user用户的权限配置,是读写, 因此,user用户具有noauthz目录的权限;
- 查看nozuthz用户的权限
1. 访问noauthz目录, noauthz没有读写该文件的权限,所以noauthz用户没有noauthz目录权限;

启动

svnserve -d -r /data/svn
-d 后台运行
-r svn的根目录

开机启动

chkconfig --list | grep svnserve
svnserve        0:关闭  1:关闭  2:关闭  3:关闭  4:关闭  5:关闭  6:关闭
chkconfig svnserve on
svnserve        0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭

查看在/etc/init.d/svnserve的启动脚本文件,有如下代码:

if [ -f /etc/sysconfig/svnserve ]; then
    . /etc/sysconfig/svnserve
fi
## 增加配置文件
touch /etc/sysconfig/svnserve
## 增加内容
OPTIONS="-r /data/svn/"
## 这样下次开机就可以自动启动svn服务器了

小技巧

  • ip改变后,修改svn地址
    svn switch --relocate svn://192.168.0.253/xxx svn://192.168.0.100/xxx --username xxx --password xxx

HTTP支持

svnsverve和http使用不同的密码文件

安装

## apr,apr-util很关键
yum install httpd apr apr-util httpd-devel
yum install mod_dav_svn

修改权限

chown apache:apache /data/svn -R

生成密码

cd /data/svn
htpasswd http_passwd zm1
htpasswd http_passwd zm2
htpasswd http_passwd zm3

配置

## vim /etc/httpd/conf.d/subversion.conf

DAV svn
SVNParentPath /data/svn
AuthType Basic
AuthName "Authorization SVN"
AuthzSVNAccessFile /data/svn/authz
AuthUserFile /data/svn/http_passwd
Require valid-user

重启

service httpd restart

SVN+SSH

客户端设置

  • 设置->Network->ssh client->TortoisePlink.exe
  • 下载putty, 使用PUTTYGEN.EXE将openssh2格式的密钥改成ppk格式的,使用PAGEANT.EXE增加密钥。

svn authz

在svn的authz目录中增加:

[/]
root = rw

方法1

~/.ssh/authorized_keys对应的public key前面增加如下:

## /data/svn为svn的根目录
command="/usr/bin/svnserve -t -r /data/svn --tunnel-user=root",no-port-forwarding,no-pty,no-agent-forwarding,no-X11-forwarding

例如:

command="/usr/bin/svnserve -t -r /data/svn --tunnel-user=root",no-port-forwarding,no-pty,no-agent-forwarding,no-X11-forwarding ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAwEXTRkzM+/R8NTIY34ZJDg8/UeXTr+2oFX2PPiCazqwUKiD55EzgMcvaZKvGZ9LcswuNc26febwZEfnQDl0HxbIlH+5tlDGk35A/WrLsi3uekTjkIDIw3Do2xb9QlnDtYXRs24lHExdJQJvV7fOdoG9ZCcdX+bU63q3Qj5DfFCpjmw5ocCVcvWTOOIG2wT++0Jxr6W3vBu6fuCVFq6siOEzXEBRx63pj7uYRNvCs6GsgbQnyKNRyZSiouyrb/qRj1AbqRWGBr8kEofgwwnP3xO61pyovZLOrJ9FsjUxTLaGACoGJioOgu4vqywYXnX3TYnYWgx7MPXb/ayhZtHXHqQ== kingwen@kingwen

使用svn co svn+ssh://[email protected]/p1 检出项目
此种方式该public key将不能登录ssh

方法2

直接使用绝对路径checkout项目:

## /data/.svn_repos/p1为项目的绝对路径
svn co svn+ssh://[email protected]/data/.svn_repos/p1

下面是广告时间
fanbiya Q1重低音电脑mp3手机通用线控入耳式运动耳塞式带麦耳机 低至 9.99元
精致女人坊精品服饰

你可能感兴趣的:(CENTOS6下SVN安装配置)