简介
subversion(简称svn)是近年来崛起的版本管理软件系统,是cvs的接班人。目前,绝大多数开源软件都使用svn作为代码版本管理软件。
Subversion是一个版本控制系统,相对于的RCS、CVS,采用了分支管理系统,它的设计目标就是取代CVS。互联网上免费的版本控制服务多基于Subversion。

一、所需软件环境检查:
  1.apr  apr-util zlib 这几个软件请参阅《LAMP基础环境搭建》中的安装路径或安装方法。
 
  2.还需要SQLite
    SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。
   
    而SQLite的使用方案有两种:
    方案一:可以只解压sqlite-amalgamation包,将解压文件拷贝到subversion解压后的源码安装目录中去。           
            官方解释:This ZIP archive contains all C source code for SQLite 3.8.1 combined into a single source file.
            译:这个zip文件是融合了SQLite 3.8.1所有C源代码的单一文件。
            换句话说:它只是源文件,没有配置安装文件,所以不能用来完整安装。

方案二:安装Sqlite数据库完整软件包,在编译subversion时加上 --with-sqlite=/usr/local/sqlite/ 选项
            官方解释:A tarball containing the amalgamation for SQLite 3.8.1 together with an configure script and makefile for building it.
            译:一个融合了SQLite 3.8.1源代码,并包含配置脚本configure及编译文件makefile的打包文件。
            换句话说:这个源码包是可以按常规步骤编译安装的。

二、执行安装(两安装方案任选其一)

方案一:可以只解压sqlite-amalgamation包,将解压文件拷贝到subversion解压后的源码安装目录中去。
            A.解压 sqlite-amalgamation 源码包
              # unzip sqlite-amalgamation-3080100.zip

B.解压 subversion 软件包:
              # tar -zxvf subversion-1.8.4.tar.gz

C.拷贝 sqlite-amalgamation 源码包到 subversion 解压包中,并更名为sqlite-amalgamation
              注:假定sqlite包与subversion包是解压在同级目录的。
              # cp -r ./sqlite-amalgamation-3080100 ./subversion-1.8.4/sqlite-amalgamation

D.进入subversion解压目录,配置编译
              # cd subversion-1.8.4
              # ./configure --prefix=/usr/local/subversion/ --with-apr=/usr/local/apr-httpd/ --with-apr-util=/usr/local/apr-util-httpd/ --with-zlib=/usr/local/zlib/ --enable-maintainer-mode
              # make
              # make install

方案二:安装Sqlite数据库完整软件包,在编译 subversion 时加上 --with-sqlite=/usr/local/sqlite/ 选项

注1: 确认已安装apr  apr-util  zlib软件包 此处略述... 请参阅《LAMP基础环境搭建》
    
            注2: 关于Sqlite数据库安装方法,此处略述... 请参阅《sqlite数据库安装配置》

# tar -zxvf subversion-1.8.4.tar.gz && cd subversion-1.8.4
            # ./configure --prefix=/usr/local/subversion/ --with-apr=/usr/local/apr-httpd/ --with-apr-util=/usr/local/apr-util-httpd/ --with-zlib=/usr/local/zlib/ --with-sqlite=/usr/local/sqlite/ --enable-maintainer-mode
     
               选项解析
               --prefix=/usr/local/subversion/             指定subversion要安装的目录
               --with-apr=/usr/local/apr-httpd/            指定apr对应安装目录
               --with-apr-util=/usr/local/apr-util-httpd/  指定apr-util对应安装目录
               --with-zlib=/usr/local/zlib/                指定zlib对应安装目录
               --with-sqlite=/usr/local/sqlite/            指定sqlite对应安装目录
               --enable-maintainer-mode                    启用调试提醒模式

# make
            # make install

三、测试是否安装成功(如果看到版本信息说明成功)
    # /usr/local/subversion/bin/svnserve --version

四、可以将SVN相关命令添加到环境变量搜索路径
    # echo "# 添加subversion环境变量:" >> /etc/profile
    # echo "PATH=$PATH:/usr/local/subversion/bin" >> /etc/profile
    # export PATH
    # source /etc/profile

五、配置subversion
  1.建立版本库总目录: /opt/mySVNdata(目录位置可以自定)
    # mkdir -p /opt/mySVNdata    版本库总目录

2.在版本库目录中 创建第1个“项目版本库”命名为:martinZFsvn ;第2个为项目命名为:martinTP
    # svnadmin create /opt/mySVNdata/martinZFsvn  //第1个项目
    # svnadmin create /opt/mySVNdata/martinTP     //第2个项目

注:版本库不同于一般的文件夹, 直接在操作系统上新建文件无法被SVN识别, 必须使用import命令将文件导入版本库。此为svn内部指令,create用于新建版本库。请使用svn help查看详细使用说明。

3.编辑新建的“项目版本库 martinZFsvn ”的配置文件 svnserve.conf
    “项目版本库 martinZFsvn ”创建生成时,会在其目录下一同创建:conf db ...几个文件,conf为配置文件目录。

# vi /opt/mySVNdata/martinZFsvn/conf/svnserve.conf

参考约第19 20行,添加:
    anon-access = none         # 设置非授权用户无法访问
    auth-access = write        # 设置授权用户有写权限

参考约第29行,添加:
    password-db = passwd       # 指定用于存放用户/密码的配置文件名(在conf目录中,也可以自己更名)

参考约第39行,添加:
    authz-db = authz           # 指定用于存放权限控制的文件名(在conf目录中,也可以自己更名)

参考约第51行,添加:
    realm = realm_martinZFsvn  # 认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字
    官方解释:指定了Repository的验证领域。如果两个Repository有相同的验证领域,那么它们应该有相同的密码数据库,反之亦然。默认的领域就是指向当前的Repository的路径,与服务器的Repository的根目录相关。

4.编辑用户/密码配置文件 passwd ,并添加用户

# vi /opt/mySVNdata/martinZFsvn/conf/passwd

在[users]里添加几个用户及对应密码,如:
    [users]   
    martin1 = 12345
    martin2 = 123456
    grptest1 = 123
    grptest2 = 456

5.编辑权限配置文件 authz ,对用户授权

# vi /opt/mySVNdata/martinZFsvn/conf/authz

A.如果想对用户分组管理:
      在组区块[groups]添加:
      group1 = grptest1,grptest2  # 比如组名为group1;多个组成员用逗号分割(如:grptest1,grptest2)

B.在最末尾添加:   
      [/]                   [/]表示对项目的根目录设置权限
      martin1 = r           读
      martin2 = rw          读写
      @group1 = rw          读【对组授权要加 @】

注:只读r,写w;没有列出的用户没有任何权限,不允许访问;
       
    C.也可单独对项目根下的某个目录设置权限:
      [/db_config]          [/db_config]表示项目根目录下的“db_config”文件夹的设置权限
      @group1 = r           读【对组授权要加 @】

注:“db_config”这个文件件怎么创建?这是在SVN服务器配置好之后,让一个权限很高的用户在客户端登录SVN,然后创建此目录。

通过上面配置达到目的: A.martin1对根下所有目录有r权限;
                            B.martin2对根下所有目录有rw权限;
                            C.group1组成员对根下所有目录有rw权限,但对/db_config只有r权限;

六、启动svn服务
    # /usr/local/subversion/bin/svnserve -d -r  /opt/mySVNdata

选项解析:
      --listen-port=3690 3690是默认端口,可以使用“--listen-port=3690” 来显式指定其它端口。
      -d 指明以守护模式运行(后台运行),
      -r 选项用来指定svn服务的根目录,这样用户就可以使用相对路径访问(svn://192.168.1.xx/martinZFsvn),而不用提供完整路径(svn://192.168.1.xx/opt/mySVNdata/martinZFsvn)
         /opt/mySVNdata 是版本库目录(绝对路径)

查看状态:
    # ps -le | grep svnserve
    # netstat -tunpl | grep svnserve

设置随系统自启动:
    # echo "# subversion随系统自启动:" >> /etc/rc.d/rc.local
    # echo "/usr/local/subversion/bin/svnserve -d -r  /opt/mySVNdata" >> /etc/rc.d/rc.local

关闭svn服务
    # killall svnserve

七、windows客户端连接
    svn://192.168.1.xx/martinZFsvn   # 访问第1个项目
    svn://192.168.1.xx/martinTP      # 访问第2个项目

subversion(SVN)安装配置的更多相关文章

  1. 从subversion开始(svn安装配置全过程(+全套安装文件与配置文件))…..

    从subversion开始(svn安装配置全过程(+全套安装文件与配置文件))-.. 博客分类: 工具使用 SVNsubversion配置管理Apache应用服务器  </div> 花了一 ...

  2. SVN安装配置及安全注意事项

    两个脚本: svn遍历脚本.zip wooyun上也是已经有非常多的svn泄露网站信息的事件,有的甚至由此导致整个服务器沦陷: WooYun: [盛大180天渗透纪实]第四章.SVN猎手 (某站SVN ...

  3. linux上配置subversion服务器端安装配置并使用svn,windows本地检出,设置同步更新服务器的钩子

    参考http://my.oschina.net/junn/blog/164041 http://songxj.blog.51cto.com/620981/396113 http://5iwww.blo ...

  4. Linux下SVN安装配置和使用中遇到的问题

    两个命令: svn info :显示版本库信息,svn的下载url等. svn co https://xxxxx/xxx   wodemulu   (通过我的目录制定co的文件夹) svn st:显示 ...

  5. CentOS6.5 yum安装 apache+svn安装配置

    首页是关于svn的备份和还原 比较快捷的方式: 备份:svnadmin hotcopy /opt/svn/svntest/ /var/tmp/svntest_20120604 --clean-logs ...

  6. SVN+FTP服务器搭建(一)——SVN安装配置篇

    Subversion是一个自由,开源的版本控制系统.在Subversion管理下,文件和目录可以超越时空.Subversion将文件存放在中心版本库里.这个版本库很像一个普通的文件服务器,不同的是,它 ...

  7. Linux下SVN安装配置及应用

    一.安装篇 centos下yum安装 yum install subversion 查看安装是否成功: svnserve --version 二.配置篇 创建svn版本库目录 mkdir /home/ ...

  8. linux SVN 安装配置

    svn服务器有2种运行方式 1.独立服务器 (例如:svn://xxx.com/xxx):2.借助apache.(例如:http://svn.xxx.com/xxx):为了不依赖apache,选择第一 ...

  9. SVN安装配置和使用教程

    注意:location :为安装文件位置,Repositories:为管理的代码仓库的位置,若选中Use secure connection前面的Checkbox,则表示安全连接[https],这里的 ...

随机推荐

  1. .net网站发布到局域网流程

    将.net网站发布到局域网的服务器上,会遇到一些版本问题,下面把发布的流程简单说一下 一:发布网站 1.首先把需要的引用程序集都重新生成一下 2.程序集都重新生成之后,右击网站项目,选择发布选项 3. ...

  2. Hibernate5.2之多对多关联关系(六)

    Hibernate5.2之多对多关联关系(六) 一.简介 Hibernate中多对多关联关系在工程中使用的频率也是非常高的,例如:大学中学生选课.用户订单等.在本博客中笔者一样通过实例代码为读者阐述H ...

  3. 【学】ECMA6的新特性1

    ECMA6的新特性1 let特性: 1.不允许重复声明 2.没有预解析 3.块级作用域 一对{}包括的区域称为代码块 块级作用域指一个变量或者函数只在该区域才起作用. 例1: console.log( ...

  4. Bugtags 远程配置功能介绍

    远程配置顾名思义是在不发版的情况下,更改应用的行为和外观.举个例子,如下图:在 Demo Page 中,BUTTON 的颜色不一样,如果想实时修改按钮颜色,测试不同颜色的按钮实际点击情况,该怎么做呢? ...

  5. javascript中日期格式与时间戳之间的转化

    日期格式与时间戳之间的转化 一:日期格式转化为时间戳 function timeTodate(date) { var new_str = date.replace(/:/g,'-'); new_str ...

  6. java如何区分是form表单请求,还是ajax请求

    requestType = request.getHeader("X-Requested-With");                 if(requestType==null) ...

  7. DIJ产品系列

  8. 飞思卡尔imx6开发板Linux下GPIO驱动

    控制GPIO_1_28的输出: #define MY_BOMB_GPIO       IMX_GPIO_NR(1, 28) 配置为输出方式: gpio_direction_output (MY_BOM ...

  9. mac-文本编辑器

    windows时代最喜欢的文本编辑器一直是ultraedit,但到了mac下,破解的ultraedit退出时会异常,于是琢磨着换编辑器,最终选择了sublime text2,百度下载,不注册也可以用. ...

  10. Java值传递以及引用的传递、数组的传递!!

    转(http://blog.csdn.net/niuniu20008/article/details/2953785) 许多编程语言都有2种方法将参数传递给方法------按值传递和按引用传递. 与其 ...