• 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

      如果出现:

      svnadmin: Repository creation failed
      svnadmin: Could not create top-level directory
      svnadmin: Can't create directory '/www/svndata/project': No such file or directory

      先新建svndata文件夹,再在svndata文件夹下面新建项目文件夹

      然后再执行 svnadmin create /www/svndata/project

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

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

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

      [general]

      anon-access = none

      auth-access = write

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

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

      realm = repos

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

      3、添加用户

      vi /web_data/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 /web_data/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

          先转到SVN的安装目录,比如,你安装在/home/svn 下面。
          然后转到bin目录下,在这里可以看见一个叫svnserve的文件,我们需要用这个来启动SVN服务。
          试一下svnserve --help,看看这个命令的帮组,其中有-d和-r,分别表示后台运行和数据仓库目录。
          数据仓库目录表示你保存数据的地方,如你将工程的信息保存在/home/svndata下面,这个svndata就是你的数据仓库目录。

          弄清楚了这些就可以来启动了:

          输入命令:
                 svnserve -d -r /home/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 /web_data/svndata/project/hooks

      ls

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

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

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

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

    命令:

    export SVN_EDITOR=vim

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

    export SVN_EDITOR=vim
  • 相关阅读:
    【Life】 今天的思考
    【openpyxl】 关于 单元格背景色 的疑惑
    【xlwings】 wps 和 office 的excel creat_sheet区别
    [git] git error: unable to unlink old
    【python tkinter】对于窗口存在的认识
    【求教 探讨】python tkinter的messagebox
    [python]近日 用3种库 实现简单的窗口 的回顾~
    AE(After Effects)的简单使用——记一次模板套用的过程
    python3爬虫应用--爬取网易云音乐(两种办法)
    【KataDaily 191015】Sort the Gift Code
  • 原文地址:https://www.cnblogs.com/ygcool/p/5395255.html
Copyright © 2020-2023  润新知