zoukankan      html  css  js  c++  java
  • ubuntu 如何搭建svn 服务器

    1.在终端中直接输入  sudo apt-get install subversion,选择安装即可
    来这个subversion同时包含了服务端和客户端。

    2.(可选)看版本命令 svnserve --version。如果出现下面图片,说明安装成功

    svn version信息 

    3.添加svn管理用户和subversion组(这步很重要,不然也会导致authentication错误)

    sudo adduser svnuser(添加svnuser用户)

    sudo addgroup subversion(添加subversion组)

    sudo addgroup svnuser subversion

    4.开始创建项目目录

    sudo mkdir /home/svn (这里的svn即为版本库目录文件,以后所有的操作都在/home/svn下

    cd /home/svn

    mkdir one(这里即为一个版本库文件,文件名可以任意取)

    chown -R root:subverison one

    chmod -R g+rws one

    5.创建SVN文件仓库,即为上面建立的one文件目录

    svnadmin create /home/svn/one

    到这一步,安装基本完成,开始改配置。

    6.在/home/svn/one文件目录中可以看到conf文件夹,可针对conf 文件夹中的authz、passwd、svnserve.conf进行设置,svnserve.conf主要设置整体的安全策略,passwd则设置用户 名和密码,authz则是设置具体的用户有什么权限。

    7.访问权限设置

     (1)编辑svnserve.conf文件,编辑svnserve.conf文件。

    anon-access:匿名用户的权限,可以为read,write和none,默认值read。不允许匿名用户访问:anon-access = none

    auth-access:认证用户的权限,可以为read,write和none,默认值write。

    password-db:密码数据库的路径,去掉前边的#

    authz-db:认证规则库的路径,去掉前边的#。

    注意:这些配置项的行都要顶格,否则会报错。修改配置后需要重启svn才能生效。

    (2)编辑passwd文件,加入用户名和密码(如下为示例)

    这是每个用户的密码文件,比较简单,就是“用户名=密码”,采用的是明码。如allen=1(apache模式下密码为经过加密的变化)

     [users]
    allen = 1
    ellen = 1
    test = 1

    (3)编辑authz文件,配置用户访问权限(如下为示例)

    1. [groups] section:为了便于管理,可以将一些用户放到一个组里边,比如:
    [groups]
    owner=allen,ellen
    [/]
    @owner= rw
    2. groups下边的sections表示对一个目录的认证规则,比如对根目录的认证规则的section为[/]。设置单用户的认证规则时一个用户一行,如:

    [/]

    allen=rw  #allen对根目录的权限为rw

    ellen=r   #ellen对根目录的权限为r

    如果使用group,需要在group名字前加@,如

    @owner=rw  #group owner中的用户均为rw,等价于上边的两句话

    启动时如果从/home/svn/one启动,/就是one目录,用如上方式以one目录为根设置权限。

    如果从/home/svn/启动,每个仓库根还是自己的起始目录。可以采用如上方式设置astar的权限,也可以采用如下方式:

    [one:/]

    @owner=rw

    简言之,每个仓库的根目录(/)就是自己的起始目录;[repos:/]这种方式只适用于多仓库的情况;[/]适合于单仓库和单仓库的方式。更多关于单仓库和多仓库的问题,请见 http://http://bbs.iusesvn.com/thread-157-1-1.html

    8.启动svn服务 svnserve -d -r -T /home/svn

    描述说明:
    -d 表示svnserver以“守护”进程模式运行

    -T表示以线程模式运行,增加效率
    -r 指定文件系统的根位置(版本库的根目录),这样客户端不用输入全路径,就可以访问版本库。如: svn://你的IP/one

    这个时候SVN就安装完成了。

    然后在WINDOW下面安装客户端tortoise SVN(可能这里大家要问,为什么客户端要安装在WINDOWS下面,因为毕竟很多程序员调试代码都是在WINDOWS下面,而且查看代码什么的都是WINDOWS下面方便)。

    9.这时候可以在客户端用用户名和密码登陆使用了,这里大家都会。

    这个时候输入密码的时候就很有可能遇到authentication failed的提示。如下图所示:

    authentication failed信息

    ,让我纠结了很久的一个问题

    后来发现问题的原因是passwd文件中所有行前面都不能有空格,如果有空格的话就会提示这个错误。

    总之,大家在配置的过程一定要注意authz passwd svnserve.conf文件所有行的前面都不能有空格;注意建立svn管理用户和组;另外注意单仓库和多仓库权限的配置问题和它们的访问路径问题。

    这样的话,基本上就可以正常地享受SVN之旅了。

    谢谢大家。有问题大家可以一起交流学习。

    9 接下来测试验证,在客户机上找个目录执行一下命令:

    复制代码
    代码如下:

    svn co svn://192.168.0.12/one --username=allen --force
    svn://192.168.0.12/one就是新建的代码仓库的地址,假设刚才的服务是建在192.168.0.12上的。参数--username是指定用户名的,不指定的话会以 当前的系统用户登录,系统用户和SVN用户是不相干的两套,所以还是人工指定的好。--force参数可有可无,如果在同一个地址上反复测试,删了建建了 删,SVN客户端会缓存住上一次成功checkout的UUID,如果删了再建UUID会发生改变,客户端校验不一致会提示“Repository UUID 'xxx' doesn't match expected UUID 'xxx'”,加--force参数就不理会这个校验,强行checkout。

    如果顺利的话,会提示“Checked out revision 0.”,然后在当前目录下生成一个akcms的目录,里面就是代码仓库的代码了。

    8、设置SVN开机启动

    (1).创建执行脚本svn.sh(/root路径下)

    #!/bin/bash
    svnserve -d -r /home/svn
    (2).添加可执行权限
    #chmod ug+x /root/svn.sh
    (3).添加自动运行

    #vim /etc/init.d/rc.local

    在最后添加一行内容如下:

    /root/svn.sh

    (4).检查
    重启服务器,使用ps -aux |grep svn看看svn进程是否启动了。

    停止svn 服务器

    1
    [root@singledb conf]# ps -ef | grep svn



    root      4592     1  0 18:04 ?        00:00:00 svnserve -d -r /u02/svn
    root      4594  3709  0 18:04 pts/1    00:00:00 grep svn
    (2)停止SVN服务:

    1
    2
    ps -aux |grep svn
    kill -9 进程杀掉

    参考文献:

    linux下搭建SVN遇到authentication failed问题的解决方法

    http://blog.csdn.net/rogerzhanglijie/article/details/39315455

    SVN 服务器搭建

    http://wenku.baidu.com/link?url=oy64ALNrNezy9SnpApKc_aC7U51xHImxL5MWvK7vIJrTMJBxcUGcHTBDIKYMSw6tTt3wmLYTfNeilM-hNY0sgQDQQB1hQ8CllDvh0-iDok3

    ubuntu系统上svn服务器搭建步骤分享

    http://www.jb51.net/os/Ubuntu/134818.html

    Ubuntu搭建SVN服务器

    http://blog.csdn.net/gavin_dinggengjia/article/details/7558635

    ubuntu下svn使用指南

    http://blog.csdn.net/dragon810913/article/details/5797593

  • 相关阅读:
    利用django创建一个投票网站(二)
    利用django创建一个投票网站(一)
    django models进行数据库增删查改
    用pyspider爬淘宝MM照片
    爬虫实现模拟登陆豆瓣
    python-study-32
    python-study-31
    python-study-30
    python-周考2
    python-周考3
  • 原文地址:https://www.cnblogs.com/flymood/p/4876156.html
Copyright © 2011-2022 走看看