一、安装

  1.查看是否安装cvs

  rpm -qa | grep subversion

  2.安装

  yum install subversion

  3.测试是否安装成功

  /usr/bin/svnserve --version

如果提示/usr/bin/svnserve: error while loading shared libraries: libaprutil-1.so.0: cannot open shared object file: No such file or directory

出现这个错误的原因就是svnserver在编译时是加了apache支持的,现在无法找到apr-util库,一般情况下我们将apache的lib目录加入到系统的lib路径中就可以了(查到方法 find / -name libaprutil-1.so.0)

然后我们打开/etc/ld.so.conf文件,并加入上面两个目录下的lib路径到文件中,如下:

# vi /etc/ld.so.conf
     /www/wdlinux/httpd-2.2.22/lib/

在文件的最后加入上面的指定路径即可,然后更新下:

ldconfig -v

  如提示以下内容,说明已安装成功

  --------------------------------------

  svnserve,版本1.6.11 (r934486)

  编译于Apr 11 2013,17:28:04

  版权所有(C) 2000-2009 CollabNet。

  Subversion 是开放源代码软件,请参阅http://subversion.tigris.org/ 站点。

  此产品包含由CollabNet(http://www.Collab.Net/) 开发的软件。

  下列版本库后端(FS) 模块可用:

  * fs_base : 模块只能操作BDB版本库。

  * fs_fs : 模块与文本文件(FSFS)版本库一起工作。

  Cyrus SASL 认证可用。

--------------------------------------------------------------

二、配置

  1、新建一个版本仓库(使用svnadmin create 创建目录仓库路径)

  svnadmin create /www/svndata/project

  2、修改svn版本库的配置文件

  vi /www/svndata/project/conf/svnserve.conf

  按以下格式内容修改,其中realm的值为项目名称,本例中即为project。

  [general]

  anon-access = none(这里必须修改为none负责日志不会记录)

  auth-access = write

  password-db = /www/svndata/project/conf/passwd

  authz-db = /www/svndata/project/conf/authz

  realm = repos

  注意:对用户配置文件的修改立即生效,不必重启svn。

  3、添加用户

  vi /www/svndata/project/conf/passwd

  要添加SVN用户非常简单,只需在/web_data/svn/project/conf/passwd文件添加一个形如“username=password”的条目就可以了。

  为了测试,我添加了如下内容:

  [users]

  # harry = harryssecret

  # sally = sallyssecret

  pm = pm_pw

  server_group = server_pw

  client_group = client_pw

  test_group = test_pw

  4、修改用户访问策略

  vi /www/svndata/project/conf/authz

  记录用户的访问策略,以下是参考:

  [groups]

  project_p = pm

  project_s = server_group

  project_c = client_group

  project_t = test_group

  [project:/]

  @project_p = rw

  * =

  [project:/server]

  @project_p = rw

  @project_s = rw

  * =

  [project:/client]

  @project_p = rw

  @project_c = rw

  * =

  [project:/doc]

  @project_p = rw

  @project_s = rw

  @project_c = rw

  @project_t = rw

  * =

  以上信息表示,只有pm有根目录的读写权,server_group能访问server目录,client_group能访问client目录,所有人都可以访问doc目录。

  当然,以上是比较复杂的权限控制,如果只是测试,可以简单些。建立一个用户组,把所有的用户都放到一个用户组,如下:

  [groups]

  admin = pm,server_group,client_group,test_group

  [/]

  @admin = rw

三、启动svn

输入命令:
             svnserve -d -r /www/svndata   如果不能启动请重启服务器
            后面那个要跟你自己的数据仓库目录。
            这样我们就启动了SVN了,SVN默认监听的是3690。

有时候我们需要更改一下监听的端口,这时就需要设定一下监听端口了,按照如下命令来进行:
            svnserve --listen-port 9999 -d -r /opt/svndata
            这样我们就把监听端口改成了9999了,当然你也可以可以把9999改成你自己想监听的端口~

四、测试svn服务器

  进入网站根目录

  cd /www/web/repos/public_html

  svn co svn://127.0.0.1:3690/project  /www/web/repos/public_html --username pm --password pm_pw

  会出现以下认证的提示

保存未加密的密码(yes/no)?

  输入“yes” 回车,因为版本仓库还没有添加任何文件,所以取出版本为0,如下:

  取出版本0。

五、把svn的bin目录加入到环境变量之中

       vi /etc/profile
      添加export PATH="$PATH:/usr/bin/svn"
      保存退出之后运行source /etc/profile
      然后执行svnserve --version 查看是否生效

六、配置post-commit,实现自动同步svn版本库文件到web目录

为了可以在修改完代码提交到SVN服务器后,WEB服务器直接同步.需要配置SVN的钩子,进入hooks目录,

  cd /www/svndata/project/hooks

  ls

  可以看到有一个post-commit.tmpl文件,这是一个模板文件,复制一份放在此目录下,命名为post-commit

      vi post-commit
      #!/bin/bash
      export LANG="zh_CN.UTF-8"
      svn update /www/web/project/public_html --username zmk --password xxx
      chown -R www:www /www/web/project
      
      如果更新提示255错误需要给post-commit加上x权限(可执行权限)chmod +x post-commit
      最后 chown -R www:www post-commit #别忘记了修改这个脚本的执行权限
七、设置SVN自启动
      在/etc/rc.d/rc.local文件中增加这么一行
      svnserve -d -r /www/svndata &
 
linux提交版本提示

svn: 提交失败(细节见下):
svn: 无法使用外部编辑器取得日志信息;请尝试设定 $SVN_EDITOR 环境变数,或是使用 --message (-m) 或 --file (-F) 选项
svn: 没有一个 SVN_EDITOR,VISUAL 或 EDITOR 环境变数被设定,执行时期的设定中也没有 'editor-cmd' 选项

解决方法: 设置vim为你的SVM_EDITOR

命令:

export SVN_EDITOR=vi

如果希望该环境变量能永久生效,把以下这行添加到你的个人文档目录下的.bash_profile文件中即可。文件路径~/.bash_profile

export SVN_EDITOR=vi

linux安装svn服务端不使用apache的更多相关文章

  1. 最全Linux搭建SVN服务端教程

    文章首推 支付宝接口对接 高德地图调用 验证码登录 QQ邮箱登录 今日主题:Linux搭建SVN服务端 简介 相信程序员对SVN还是不陌生的,虽然现在用Git比较多,但是SVN也是用的,SVN可以做代 ...

  2. suse安装svn服务端和客户端的使用

    suse安装svn服务端 一. 安装服务端 配置网络安装源(suse11sp1为例) 新建11.1.repo11.1为软件源名称,可自定义文件并添加如下内容后保存 linux-e0xg:/etc/zy ...

  3. Linux安装svn服务图文详解 ;出现No repository found in 'svn***问题

    Linux安装svn服务 ** 示例都是用的root权限,可选择用 sudo** 1:检查 安装条件为:Linux(centos)上未安装过svn服务,若安装过或安装失败请自行删除,这里不多介绍.检查 ...

  4. Linux下安装SVN服务端

    安装 使用yum安装非常简单: yum install subversion 配置 2.1. 创建仓库 我们这里在/home下建立一个名为svn的仓库(repository),以后所有代码都放在这个下 ...

  5. CentOS7下安装SVN服务端

    CentOS7下安装SVN服务 1. yum命令即可方便的完成安装# sudo yum install subversion 测试安装是否成功:# svnserve --version 更改svn的默 ...

  6. CentOS 7 安装SVN服务端

    CentOS7下安装SVN服务 1. yum命令即可方便的完成安装# sudo yum install subversion 测试安装是否成功:# svnserve --version 更改svn的默 ...

  7. Linux下安装SVN服务端小白教程

    安装 使用yum安装非常简单: yum install subversion 配置 创建仓库 我们这里在/home下建立一个名为svn的仓库(repository),以后所有代码都放在这个下面,创建成 ...

  8. linux 搭建SVN服务端

    搞了个服务器,然后现在想搞点事情,于是乎整个SVN在上面,算是熟悉下svn的操作过程 以下内容转载自: https://yq.aliyun.com/articles/6693 ------------ ...

  9. CentOs linux安装SVN服务

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

随机推荐

  1. Unable to execute dex: Multiple dex files define Lcom/gl

    [2015-04-16 17:42:04 - Dex Loader] Unable to execute dex: Multiple dex files define Lcom/gl/softphon ...

  2. ios 开发之 Xcode6 No valid signing identities (i.e. certificate and private key pair) matching...

    之前的项目用证书真机测试过,我想再无证书Build,出现下面的报错提示! 下面的team我无法改成None!一点击None选的还是Unhonw name(JPGE28K3W9)这个是报错的关键 最后由 ...

  3. djangoadmin导出csv

    from django.contrib import admin from .models import Order,OrderItem from django.http import HttpRes ...

  4. python网络编程socket之多进程

    #coding:utf-8 __author__ = 'similarface' import os,socket,threading,SocketServer SERVER_HOST='localh ...

  5. MEAN-全栈javascript开发框架

    引言 使用JavaScript能够完整迅速做出Web应用程序,目前一套工具包括MongoDB.ExpressJS,AngularJS和Node.js越来越受到欢迎,其开发的灵活性和易用性加快开发效率, ...

  6. 记一次基于Unity的Profiler性能分析

    A. WaitForTargetFPS: Vsync(垂直同步)功能所,即显示当前帧的CPU等待时间    B. Overhead:       Profiler总体时间-所有单项的记录时间总和.用于 ...

  7. 关于OneProxy推广

    通过以下关键字 分库分表,读写分离,连接池,跨库查询,开源数据库,MySQL,高性能,并行查询 在搜索引擎中,都找不到OneProxy和OneSQL的影子

  8. 如何精确地测量java对象的大小-底层instrument API

    转载: 如何精确地测量java对象的大小-底层instrument API 关于java对象的大小测量,网上有很多例子,大多数是申请一个对象后开始做GC,后对比前后的大小,不过这样,虽然说这样测量对象 ...

  9. 关于GET请求带Body的问题

    今天在进行接口联调时遇到这个问题了,当时是很茫然的,因为从来没遇过. 后来又搜索了一下GET和Post的区别. 然后看见了这篇文章.不再以讹传讹,GET和POST的真正区别 我有限的知识还是无法去确定 ...

  10. 素定位器(ElementLocators)

    元素定位器(ElementLocators)告诉Selenium是向HTML中的哪一个元素发送命令.一个定位器的格式如下:locatorType=argument 我们支持如下写法用于定位元素:ide ...