zoukankan      html  css  js  c++  java
  • SVN CentOS7 下配置svn的安装及基础配置介绍

    CentOS7 下配置svn的安装及基础配置介绍

     

    by:授客 QQ1033553122

    目录

    一、         实践环境... 1

    二、         安装操作系统... 1

    三、         安装SVN. 1

    四、         基础配置... 2

    五、         启动SVN. 7

    六、         客户端访问... 8

    七、         常见问题排查... 8

     

    一、      实践环境

    CentOS 7操作系统(CentOS-7-x86_64-DVD-1503-01.iso)

    下载地址:http://ftp.riken.jp/Linux/centos/7/isos/x86_64/

     

     

    二、      安装操作系统

    软件选择(SOFTWARE SELECTION)



     

    三、      安装SVN

    [root@localhost ~]# yum install subversion

     

    查看是否安装安装成功

    [root@localhost ~]# svnserve --version

    svnserve, version 1.7.14 (r1542130)

       compiled Jun  9 2014, 18:54:44

     

    Copyright (C) 2013 The Apache Software Foundation.

    This software consists of contributions made by many people; see the NOTICE

    file for more information.

    Subversion is open source software, see http://subversion.apache.org/

     

    The following repository back-end (FS) modules are available:

     

    * fs_base : Module for working with a Berkeley DB repository.

    * fs_fs : Module for working with a plain file (FSFS) repository.

     

    Cyrus SASL authentication is available.

     

    四、      基础配置

    创建一个空文件夹,例如 svn,作为所有版本库的根目录

    [root@localhost ~]# mkdir -p /svn/

     

     

    进入svn目录,创建版本库,比如 repo

    [root@localhost ~]# cd /svn/

    [root@localhost svn]# svnadmin create --fs-type fsfs repo

     

    # 查看repo目录文件

    [root@localhost svn]# cd repo/

    [root@localhost repo]# ls

    conf  db  format  hooks  locks  README.txt

    [root@localhost repo]# cd conf/

    [root@localhost conf]# ls

    authz  passwd  svnserve.conf

     

    文件说明:

    1svnserve.conf文件

    该文件用于控制svnserve守护进程(svnserve daemon)的配置,以便访问svn版本库。如果仅是通过http:// 或者file:URLs方式访问版本库,则与该文件配置不起作用。

     

    [general]结点

    anon-access(匿名访问)和auth-access(认证访问)选项,分别用于控制未认证用户和与认证用户对svn版本库的访问,其可选值包含 writereadnone,如果设置为none则无对版本库的读写访问权限;设置为write则有可读可写权限;设置为read则只有读权限。

     

    password-db用于控制密码数据库文件的位置,除非指定了一个带符号‘/ 的路径,否则文件的位置为包含该配置文件的相对路径,如果开启了SASL,则该文件配置不起作用。

     

    authz-db选项控制基于路径访问控制的认证规则的位置。除非指定了带‘/’的路径,否则该文件位置为包含该配置文件的相对位置。如果不指定authz-db,则没有基于路径的访问控制。

     

    realm 选项指定了版本库的认证域(authentication realm)。如果两个版本库有同样的认认证域(authentication realm),他们应该有相同的密码数据库,反之亦然。缺省的 realm为版本库的uuid

     

    force-username-case 选项,在authz-db文件配置的规则下,让svnserve比较用户名之前,规范化用户名大小写(case-normalize)。合法值有 lowser 转小写;upper转大写;none采用默认的,不进行大小写转化。

     

    [sasl]结点

    用于指定是否为认证使用 Cyrus SASL类库。默认的false。如果svnserve不带Cyrus SASL支持编译的,那么该小节会被忽略。运行'svnserve --version,查找如下行'Cyrus SASL authentication is available.' 则表示支持。

    该选项指定了想让SASL提供的安全级别,0表示加密,1表示仅集成检查,大于1的的值是和用于加密的有效密匙长度相关的。 (e.g. 128 代表 128-bit加密). 默认值如下

    # min-encryption = 0

    # max-encryption = 256

     

    2password文件

    该文件为svnserve密码文件实例,每行代表一个svn用户账户

    [users]

    用户名1 = 用户密码1

    用户名2 = 用户密码2

    ……

    用户名n = 用户密码n

     

    3authz文件

    该文件为svnserve认证实例文件,定义路径和版本库(可选)的认证

    其中每一行记录可能代表

    1)单个用户

    2)定义的一组用户([groups]节点中定义的

    3)定义的一个别名([aliases]节点中定义的

    4)使用$authenticated token的所有认证用户

    5)仅使用$anonymous token的匿名用户

    6*  任何人

     

    [aliases]

    暂时只知道是设置别名,但是具体是怎么定义的,不是很清楚,先不管吧

     

    [groups]

    自定义分组名1 = 用户1,用户2,……

    自定义分组名2 = 用户3,用户4,……

    ……

    自定义分组名n = 用户n1,用户n2,……

     

    说明:用户名之间用英文逗号分隔

     

    [repository_name:dir_path]

    用户名1 = 权限1

    用户名2 = 权限2

    ……

    用户名n = 权限n

    @自定义分组名1 = 权限1

    @自定义分组名2 = 权限2

    ……

    @自定义分组名n = 权限n

    &别名1 = 权限1

    &别名2 = 权限2

    ……

    &别名n = 权限n

    * = 权限

     

    [dir_path]

    用户名1 = 权限1

    用户名2 = 权限2

    ……

    用户名n = 权限n

    @自定义分组名1 = 权限1

    @自定义分组名2 = 权限2

    ……

    @自定义分组名n = 权限n

    &别名1 = 权限1

    &别名2 = 权限2

    ……

    &别名n = 权限n

    * = 权限

     

    说明:

    1) [repository_name:dir_path]表示名为repository_name的版本库的dir_path目录,比如 [repo:/]表示repo版本的库的根目录

    举例:

    svn版本库目录结构为:/svn/repo,,其中/svn为所有版本库的根,repo为其中一个版本库名称,启动方式:svnserve -d -r /svn/,



    那么可以如下设置

    [repo:/] /代表 /svn/

    [repo:/test1]

    [repo:/test1/test2]

     

    如果只有一个版本库,等效做法如下

    [/]

    [/test1]

    [/test1/test2]

     

    其中,test1test2都是通过svn客户端创建的目录

     

    3) 权限可为rwrw,分别代表只可读,只可写,可读可写,这里rwrw只针对dir_path最后层级的目录生效

    例:

    [repo:/test1/test2]

    shouke = rw

    那么svn:192.168.1.103/test1 进行访问,会提示认证失败

     

    4) 别名,用户名,自定义分组不分先后顺序

    5) * = 权限,如果无任何权限则不填写,直接 * =  ,这里,*表示除了指定的用户,自定义分组,别名之外的任何人

     

     

    修改svnserve.conf配置

    [root@localhost conf]# vim svnserve.conf

    找到如下内容

    [general]

    ……()

    # anon-access = read

    # auth-access = write

     

    改成如下内容

    [general]

    ……()

    anon-access = none

    auth-access = write

     

    找到如下内容

    #password-db = passwd

     

    改成如下内容

    password-db = password

     

    找到如下内容

    # authz-db = authz

     

    改成如下内容

    authz-db = authz

     

    找到如下内容

    [sasl]

    ……()

    # use-sasl = true

     

    改成如下内容

    [sasl]

    ……()

    use-sasl = true

     

    新增svn用户

    [root@localhost conf]# useradd shouke

    [root@localhost conf]# passwd shouke

    Changing password for user shouke.

    New password:

    BAD PASSWORD: The password is shorter than 8 characters

    Retype new password:

    passwd: all authentication tokens updated successfully.

    [root@localhost conf]# vim passwd

    说明:用户密码 123456

     

    修改password配置文件

    找到如下内容,

    [users]

    # harry = harryssecret

    # sally = sallyssecret

     

    在其下新增带背景色内容,如下

    [users]

    # harry = harryssecret

    # sally = sallyssecret

    shouke=123456

     

    修改authz配置文件

    [root@localhost conf]# vim authz

    ……()

     

    找到如下内容

    [groups]

    # harry_and_sally = harry,sally

    # harry_sally_and_joe = harry,sally,&joe

     

    在其下新增一行内容,如下

    [groups]

    # harry_and_sally = harry,sally

    # harry_sally_and_joe = harry,sally,&joe

    group1 = shouke

     

    找到如下内容

    # [repository:/baz/fuz]

    # @harry_and_sally = rw

    # * = r

     

    在其下新增内容,如下

    # [repository:/baz/fuz]

    # @harry_and_sally = rw

    # * = r

    [repo:/]

    @group1 = rw

     

     

    五、      启动SVN

    [root@localhost conf]# svnserve -d -r /svn/

     

    说明:-d 表示以daemon的方式运行,-r dir_path 表示把dir_path当作版本库的根目录,比如 /svn/reposvn://192.168.1.103/repo,访问的就是/svn/repo

     

    查看

    [root@localhost conf]# netstat -antp | grep svn

    tcp        0      0 0.0.0.0:3690            0.0.0.0:*               LISTEN      8474/svnserve  

    说明:如上,默认端口为3690

     

    六、      客户端访问

    测试客户端版本:TortoiseSVN-1.9.1.26747-win32-svn-1.9.1.1441852914.msi



     

    七、      常见问题排查

    1.Unable to connect to repository at url ‘svn://…’ No repositroy found at snv://……,如下



    说明:访问方式不对,

    1)类似svnserve -d -r /svn/ 方式(即指定路径作为根目录)开启的svn服务,正确的访问方式svn://192.168.1.103/repo svn://ip[:port]/repository_name

    2)不指定路径作为版本库的跟目录里,svnserve -d 方式开启的svn服务,正确的访问方式svn://192.168.1.103/svn/repo svn://[:port]/path_of_repository

     

    2 please wait while the repository browser is initializing

    说明:防火墙阻止了端口,解决方法(centos7下测试),开放端口

    [root@localhost conf]# firewall-cmd --permanent --zone=public --add-port=3690/tcp

    success

    [root@localhost conf]# firewall-cmd --reload

    success

     

    3、类似如下,目标计算机积极拒绝或者

     SVN <wbr>CentOS7 <wbr>下配置svn的安装及基础配置介绍

    说明:服务器svnserve未开启

  • 相关阅读:
    oracle游标
    PLSQL
    git移除target目录下已经提交的内容案例
    git全局配置
    [github]Windows系统下将本地仓库的项目上传到远程仓库(含仅单独上传更新文件情况)
    小试Python交互模式(Python Shell)与读文件操作报错(OSError)的解决办法
    C盘内存“侵略者”——Unity开发环境中GI Cache默认目录的修改
    Hibernate学习——Hibernate Tools for Eclipse Plugins的下载与安装
    博客开篇——应用Markdown编辑器呈现样式和内容
    pt-table-checksum使用dsn方式连接检测从库
  • 原文地址:https://www.cnblogs.com/shouke/p/10157823.html
Copyright © 2011-2022 走看看