Chinaunix首页 | 论坛 | 博客
  • 博客访问: 323523
  • 博文数量: 74
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 447
  • 用 户 组: 普通用户
  • 注册时间: 2014-06-09 09:12
个人简介

书山有路勤为径,学海无涯苦作舟

文章分类

全部博文(74)

文章存档

2015年(44)

2014年(30)

我的朋友

分类: 系统运维

2015-03-25 15:45:18

本文主要记录Linux(centOS6.5)下SVN的安装、配置及开机启动,不包括配置web模块!
1.

检查已安装版本

#检查是否安装了低版本的SVN
[root@localhost /]# rpm -qa subversion

#卸载旧版本SVN
[root@localhost modules]# yum remove subversion

安装SVN

[root@localhost modules]# yum install httpd httpd-devel subversion mod_dav_svn mod_auth_mysql

确认已安装了svn模块

[root@localhost /]# cd /etc/httpd/modules
[root@localhost modules]# ls | grep svn
mod_authz_svn.so
mod_dav_svn.so
以上两个模块是配合Apache作web访问的,SVN客户端访问的话可以不用安装。

验证安装

检验已经安装的SVN版本信息
[root@localhost modules]# svnserve --version
svnserve, version 1.6.11 (r934486)
   compiled Apr 11 2013, 16:13:51

Copyright (C) 2000-2009 CollabNet.
Subversion is open source software, see
This product includes software developed by CollabNet ().

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

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

Cyrus SASL authentication is available.

代码库创建

SVN软件安装完成后还需要建立SVN库
[root@localhost modules]# mkdir -p /home/svn/svnfile
[root@localhost modules]# svnadmin create /home/svn/svnfile
执行上面的命令后,自动建立svn库,查看/home/svn/svnfile 文件夹发现包含了conf, db,format,hooks, locks, README.txt等文件,说明一个SVN库已经建立。

配置代码库

进入上面生成的文件夹conf下,进行配置
[root@localhost modules]# cd /home/svn/svnfile/conf

用户密码passwd配置

[root@localhost password]# cd / home/svn/svnfile/conf
[root@admin conf]# vi + passwd
修改passwd为以下内容:

[users]
# harry = harryssecret
# sally = sallyssecret
admin = admin

权限控制authz配置

[root@admin conf]# vi + authz
目的是设置哪些用户可以访问哪些目录,向authz文件追加以下内容:

#设置[/]代表根目录下所有的资源
[/]
admin = rw
[groups]
= ,
其中,1个用户组可以包含1个或多个用户,用户间以逗号分隔。
版本库目录格式:
[<版本库>:/项目/目录]
@<用户组名> = <权限>
<用户名> = <权限>

服务svnserve.conf配置

[root@admin conf]# vi + svnserve.conf

追加以下内容:

[general]
#匿名访问的权限,可以是read,write,none,默认为read
anon-access=none
#使授权用户有写权限
auth-access=write
#密码数据库的路径
password-db=passwd
#访问控制文件
authz-db=authz
#认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字
realm=/home/svn./svnfile

配置防火墙端口

[root@localhost conf]# vi /etc/sysconfig/iptables
添加以下内容:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT
保存后重启防火墙
[root@localhost conf]# service iptables restart

启动SVN

svnserve -d -r /home/svn

查看SVN进程

[root@localhost conf]# ps -ef|grep svn|grep -v grep
root     12538     1  0 14:40 ?        00:00:00 svnserve -d -r /opt/svn/repositories

检测SVN 端口

[root@localhost conf]# netstat -ln |grep 3690
tcp        0      0 0.0.0.0:3690                0.0.0.0:*                   LISTEN

停止重启SVN

[root@localhost password]# killall svnserve    //停止
[root@localhost password]# svnserve -d -r /opt/svn/repositories  // 启动   -d表示以daemon方式(后台运行)运行

测试

SVN服务已经启动,使用客户端测试连接。
客户端连接地址:svn://192.168.0.178
用户名/密码: admin/admin
测试创建文件夹等操作。
安装好的svn服务端,默认是不会开机自启动的,每次开机自己启动会很麻烦,我们可以把它设成开机启动
#!/bin/bash
/usr/bin/svnserve -d -r /home/svn/ 这里的svnserve路径保险起见,最好写绝对路径,因为启动的时候,环境变量也许没加载。
绝对路径怎么查?

which svnserve
这里还有可能碰到一个问题,如果你在windows下建立和编写的脚步,拿到linux下,用vi或者vim修改后可能会无法执行,这是文件格式的问题
vi svn_startup.sh
输入:set ff 回车
如果显示的结果不是fileformat=unix
再次输入
set ff=unix
就OK了
然后修改该脚本的执行权限
chmod ug+x svn_startup.sh
或者万能的
chmod 777 svn_startup.sh
最后:加入自动运行
vi /etc/rc.d/rc.local
在末尾添加脚本的路径,如:
/root/svn_startup.sh
注意:不要使用chkconfig svnserve on 否则无法连接
现在,你可以重启一下试试了



阅读(1546) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~