您的位置:首页 > 运维架构 > Linux

centOS6.5下SVN的安装、配置及开机启动

2015-04-10 18:02 615 查看
原文地址:http://blog.chinaunix.net/uid-29698941-id-4916202.html

本文主要记录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 http://subversion.tigris.org/
This product includes software developed by CollabNet (http://www.Collab.Net/).

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

服务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 否则无法连接

现在,你可以重启一下试试了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: