• linux安装svn服务端不使用apache


    一、安装

      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

  • 相关阅读:
    nat
    ICE协议下NAT穿越的实现(STUN&TURN)
    比特币源码分析--端口映射
    IO复用,AIO,BIO,NIO,同步,异步,阻塞和非阻塞 区别(百度)
    从数据的角度带你深入了解IPFS
    IPFS 到底是怎么工作的?
    从数据的角度带你深入了解IPFS
    IPFS
    IPFS中文简介
    bootstrap 表单验证 dem
  • 原文地址:https://www.cnblogs.com/whlives/p/4202485.html
Copyright © 2020-2023  润新知