一、安装

  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. Android Netty框架的使用

    Netty框架的使用 1 TCP开发范例 发送地址---192.168.31.241 发送端口号---9223 发送数据 { "userid":"mm910@mbk.co ...

  2. iOS开发之Xcode6 之手动添加Pch预编译文件

    参考文档 http://blog.csdn.net/crazyzhang1990/article/details/44243343 红色部分为本人自己补充注意事项 在Xcode6之前,创建一个新工程x ...

  3. arr.sort()排序方法

    <!DOCTYPE html><html lang="zh-CN"><head> <meta charset="UTF-8&qu ...

  4. iOS开发之语音功能实现

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launc ...

  5. JavaScript中Trim(),TrimStart(),TrimEnd()的实现

    //去除字符串头尾空格或指定字符 String.prototype.Trim= function(c) { if(c==null||c=="") { var str= this.r ...

  6. JavaScript高阶函数的应用

    定义 高阶函数是指至少满足下列条件之一的函数: 函数可以作为参数被传递: 函数可以作为返回值输出. JavaScript语言中的函数显然满足高阶函数的条件,在实际开发中,无论是将函数当作参数传递,还是 ...

  7. 基因组 de novo 组装原理

    Falcon软件的组装流程 为了错误校正,将原始子reads进行overlap 预组装和错误校正 错误校正后reads的overlap检测 overlap的过滤 从overlap构建图 从图构建con ...

  8. selenium 加载RemoteDriver浏览器驱动

    title NodeWebDriver java -jar selenium-server-standalone-2.42.2.jar -Dwebdriver.ie.driver="C:\S ...

  9. noip赛前小结1

    正是noip前夕,我的心却颇不宁静. 最近的内部测试,我的成绩非常不稳定,一会儿可以考个第一,一会儿也可以掉得很低. 总之感觉非常的焦虑. 何以解忧?唯有作文. 要有良好的生活作息. 最近考试不稳定的 ...

  10. 如何查看连接mysql的ip地址

    select SUBSTRING_INDEX(host,':',1) as ip , count(*) from information_schema.processlist group by ip;