virtualbox的ubuntu虚拟机中搭建SVN服务器
  • virtualbox的ubuntu虚拟机中搭建SVN服务器 一 安装SVN    sudo apt-get install subversion                                 www.2cto.com  二 用自动脚本配置SVN服务器 SVN服务器的分为如下几步:    1 在ubuntu上创建SVN用户及SVN用户组        2 创建SVN根目录及项目目录    3 创建SVN数据仓库    4 修改目录权限    5 导入初始数据(可选)    6 配置SVN用户权限这下提供一个BASH脚本,可以完成上面6步工作的前面5步。“配置SVN用户权限”在下小节中将继续说明:  www.2cto.com   01#!/bin/bash02###################################03# V1.004# 作用:完成,SVN数据库的初始化工作,已经在Ubuntu上通过了测试05# 使用方法: 可以直接在终端输入 sudo init_svn_server.sh 来运行本脚本,如果06#         你想修改一些关键的设置 如用户名什么的,可以在“关键变量定义”处修改07# 作者: Jackey77681571@126.com08###################################09 10#关键变量定义11SVN_USER=svnuser12SVN_GROUP=subversion13SVN_ROOT=/home/svn14PROJECT_DIR=svn_manager15IS_IMPORT=FALSE16#soruce file directory17LOCAL_DIR=/home/daydayup/work/project/svnmanager/src/source18RES_STR=`grep $SVN_USER /etc/passwd`19 20#添加svn管理用户及管理组21if [ -e "$RES_STR" ]; then22    echo "------------Add svn user-------------"23    sudo adduser "$SVN_USER"24    sudo addgroup "$SVN_GROUP"25    sudo addgroup "$SVN_USER" "$SVN_GROUP"26else27    echo "The user:($SVN_USER), is exist."28fi29 30RES_STR=`grep $SVN_GROUP /etc/group`31if [ -e "$RES_STR" ]; then32    echo "------------Add Group-------------"33    sudo addgroup "$SVN_GROUP"34    sudo addgroup "$SVN_USER" "$SVN_GROUP"35else36    echo "The group:($SVN_GROUP), is exist."37fi38 39RES_STR=`grep "$SVN_GROUP:.*:$SVN_USER" /etc/group`40if [ -e "$RES_STR" ]; then41    echo "------------Add user to group-------------"42    sudo addgroup "$SVN_USER" "$SVN_GROUP"43else44    echo "The user:($SVN_USER), has been readly in group:($SVN_GROUP)."45fi46 47#创建项目目录48if [ -d "$SVN_ROOT" ]; then49    echo "SVN Root:($SVN_ROOT), is exist."50else51    echo "------------Create svn root directory!-------------"52    sudo mkdir "$SVN_ROOT"53fi54cd "$SVN_ROOT"55 56if [ -d "$PROJECT_DIR" ]; then57    echo "Project:($PROJECT_DIR), is exist."58else59    echo "------------Create svn project directory!-------------"60    sudo mkdir "$PROJECT_DIR"61    #创建SVN文件仓库62    echo "create:""$SVN_ROOT/$PROJECT_DIR"63    sudo svnadmin create "$SVN_ROOT/$PROJECT_DIR"64 65    sudo chown -R "root:$SVN_GROUP" "$PROJECT_DIR"66    sudo chmod -R g+rws "$PROJECT_DIR"67 68fi69 70if [ -d "$LOCAL_DIR" ]; then71 72    if [ "TRUE" == "$IS_IMPORT" ]; then73    #In the way the LOCAL_DIR will not become the work space.74    svn  import -m "init import" "$LOCAL_DIR" "file://$SVN_ROOT/$PROJECT_DIR"75    else76    sudo svn co "file://$SVN_ROOT/$PROJECT_DIR" "$LOCAL_DIR"77    fi78fi79 80exit 0三 配置权限文件    进入SVN项目目录。上一小节的脚本所生的的项目目录就是“/home/svn/svn_manager”.在项目目录下有一个名为“conf”的子目录。对权置的设置工作,主要是修改该子目录下的三个文件:authzpasswdsvnserve.conf svnserve.conf 主要用来设置用户信息文件的文件名的及匿名访问的权限。我们打开 svnserve.conf 文件,后,通常首先要去“password-db = passwd” 及 “authz-db = authz”,这两句前面的注释即可(注意把空格也去掉)password-db = passwd 作用就是把密码信息文件指定为同级目录下的“passwd”文件,这也是默认就会成成的密码文件。authz-db = authz这个是指定用信息信息文件,设定方法上面“password-db”差不同。接着设置 鉴权用户及非鉴权用户的权限,同样也是要去注释:anon-access = readauth-access = write不过我们通常会改成如下这样anon-access = noneauth-access = write这样非鉴权用户就无任何的访问权限了。 passwd文件主要用来设置用户名与密码的对应表。具体的设置方法可以参看本文件中已经有的例子。authz 文件设置用户及用户组的权限,还有操作的目录。具体的设置方法可以参看本文件中已经有的例子。 四 设置virtualbox端口转发  看上图大家应该已经知道设置的要点了,这里只说明一下“子系统IP”就是在虚拟系统中查出的IP。可以在终端中输入“ifconfig”查询。“主机端口”与“子系统端口”并不要求相同,只是我为了方便记忆将其设置为一样罢了。 五 启动SVN服务    sudo svnserve -d -r [服务的根目录] --listen-port [监听的端口号]  -d [--daemon]            : 后台模式  -r [--root] ARG           : 服务的根目录  --listen-port ARG       : 监听端口    我是这样启动服务的:  www.2cto.com    sudo svnserve -d -r /home/svn/ --listen-port 8036 六 checkout代码    svn checkout svn://127.0.0.1/svn_manager --username mysvnuser --password mypassword 

     

  • 点这里复制本页地址发送给您QQ/MSN上的好友
  • 300*300广告