美文网首页我爱编程
linux服务器 svn安装

linux服务器 svn安装

作者: 熊猫测试版 | 来源:发表于2018-04-04 22:42 被阅读0次

    linux下 SVN安装


    1. 相关软件

    下载相关软件

    wget http://subversion.tigris.org/downloads/subversion-1.6.6.tar.gz
    wget http://subversion.tigris.org/downloads/subversion-deps-1.6.6.tar.gz
    

    2. 编辑

    1) 查看是否安装了svn工具
    命令:

    rpm -qa | grep subversion
    

    如果服务器已经安装了则不需要进行安装,如果没有安装可以进行全新的安装

    2) 首先检测系统有没有安装SSL:
    find / -name opensslv.h
    如果找不到,就执行如下命令进行安装:
    yum install openssl
    yum install openssl-devel
    安装之后用find / -name opensslv.h命令找到opensslv.h所在的目录,即下列–with-openssl=后面的路径,
    3) 解压svn安装文件
    subversion-1.6.6.tar.gz
    subversion-deps-1.6.6.tar.gz
    命令如下:

    tar zxvf subversion-1.6.6.tar.gz
    tar zxvf subversion-deps-1.6.6.tar.gz
    

    tar 为解压命令,zxvf为tar命令的参数,用于解压tar.gz格式压缩的文件。
    解压后生成 subversion-1.6.6 子目录,两个压缩包解压后都会自动放到此目录下,不用手动更改。
    进入解压子目录 cd subversion-1.6.6 进行编译。
    4) 编译

    ./configure --prefix=/usr/local/svn --with-openssl=/usr/include/openssl
     --without-berkeley-db
    

    后面以svnserve方式运行,所以不加apache编译参数。以fsfs格式存储版本库,不编译berkeley-db
    如果编译时报如下错误:
    no acceptable C compiler found in $PATH
    说明没有gcc库,使用如下命令安装gcc后再编译:
    yum -y install gcc

    3. 安装

    $make
    $make install
    

    测试是否安装成功

    /usr/local/svn/bin/svnserve --version
    

    如果显示如下,svn安装成功:

    svnserve, version 1.6.6 (r40053)
       compiled Dec 25 2012, 13:14:38
     
    Copyright (C) 2000-2009 CollabNet.
    Subversion is open source software, see http://subversion.tigris.org/
    This product includes software developed by CollabNet 
    (http://www.Collab.Net/).
     
    The following repository back-end (FS) modules are available:
     
    * fs_fs : Module for working with a plain file (FSFS) repository.
     
    Cyrus SASL authentication is available.
    

    4、为了方便下操作,把svn相关的命令添加到环境变量中:

    echo "export PATH=$PATH:/usr/local/svn/bin/" >> /etc/profile
    source /etc/profile
    

    新建svn项目

    1、建立SVN的根目录

    mkdir -p /opt/svn/
    

    2、建立一个产品仓库

    mkdir -p /opt/svn/wechat/
    svnadmin create /opt/svn/wechat/
    

    如果你们的研发中心有多个产品组,每个产品组可以建立一个SVN仓库
    3、修改版本配置库文件

    vi /opt/svn/wechat/conf/svnserve.conf
    

    修改后的文件内容如下:

    ### This file controls the configuration of the svnserve daemon, if you
    ### use it to allow access to this repository.  (If you only allow
    ### access through http: and/or file: URLs, then this file is
    ### irrelevant.)
     
    ### Visit http://subversion.tigris.org/ for more information.
     
    [general]
    ### These options control access to the repository for unauthenticated
    ### and authenticated users.  Valid values are "write", "read",
    ### and "none".  The sample settings below are the defaults.
    anon-access = none # 注意这里必须设置,否则所有用户不用密码就可以访问
    auth-access = write
    ### The password-db option controls the location of the password
    ### database file.  Unless you specify a path starting with a /,
    ### the file's location is relative to the directory containing
    ### this configuration file.
    ### If SASL is enabled (see below), this file will NOT be used.
    ### Uncomment the line below to use the default password file.
    password-db = passwd
    ### The authz-db option controls the location of the authorization
    ### rules for path-based access control.  Unless you specify a path
    ### starting with a /, the file's location is relative to the the
    ### directory containing this file.  If you don't specify an
    ### authz-db, no path-based access control is done.
    ### Uncomment the line below to use the default authorization file.
    authz-db = authz
    ### This option specifies the authentication realm of the repository.
    ### If two repositories have the same authentication realm, they should
    ### have the same password database, and vice versa.  The default realm
    ### is repository's uuid.
    realm = wechat
     
    [sasl]
    ### This option specifies whether you want to use the Cyrus SASL
    ### library for authentication. Default is false.
    ### This section will be ignored if svnserve is not built with Cyrus
    ### SASL support; to check, run 'svnserve --version' and look for a line
    ### reading 'Cyrus SASL authentication is available.'
    # use-sasl = true
    ### These options specify the desired strength of the security layer
    ### that you want SASL to provide. 0 means no encryption, 1 means
    ### integrity-checking only, values larger than 1 are correlated
    ### to the effective key length for encryption (e.g. 128 means 128-bit
    ### encryption). The values below are the defaults.
    # min-encryption = 0
    # max-encryption = 256
    

    将 anon-access 设置成 none。=>不然showlog不显示
    对用户配置文件的修改是立即生效的,不必重启svn。
    4、开始设置passwd用户账号信息

    vi /data/svn/repos/conf/passwd
    

    修改完之后的内容如下:

    ### This file is an example password file for svnserve.
    ### Its format is similar to that of svnserve.conf. As shown in the
    ### example below it contains one section labelled [users].
    ### The name and password for each user follow, one account per line.
    ### 在下面添加用户和密码,每行一组username = password
    [users]
    # harry = harryssecret
    # sally = sallyssecret
    ###===========下面是我添加的用户信息========#######
    usr1 = xxxxxx
    usr2 = xxxxxx
    

    5、开始设置authz. 用户访问权限

    vi /data/svn/repos/conf/authz
    

    修改完之后的内容如下:

    ### This file is an example authorization file for svnserve.
    ### Its format is identical to that of mod_authz_svn authorization
    ### files.
    ### As shown below each section defines authorizations for the path and
    ### (optional) repository specified by the section name.
    ### The authorizations follow. An authorization line can refer to:
    ###  - a single user,
    ###  - a group of users defined in a special [groups] section,
    ###  - an alias defined in a special [aliases] section,
    ###  - all authenticated users, using the '$authenticated' token,
    ###  - only anonymous users, using the '$anonymous' token,
    ###  - anyone, using the '*' wildcard.
    ###
    ### A match can be inverted by prefixing the rule with '~'. Rules can
    ### grant read ('r') access, read-write ('rw') access, or no access
    ### ('').
     
    [aliases]
    # joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, 
            Ltd./OU=Research Institute/CN=Joe Average
     
    # [groups]
    # harry_and_sally = harry,sally
    # harry_sally_and_joe = harry,sally,&joe
     
    # [/foo/bar]
    # harry = rw
    # &joe = r
    # * =
     
    # [repository:/baz/fuz]
    # @harry_and_sally = rw
    # * = r
     
    ###--------------------下面我新加的------------------------###
    ###屏蔽掉上面的[groups] 因为在下面添加了
     
    [groups]
    devteam = usr1, usr2 #devteam 项目组包括两个用户iitshare,itblood
     
    [/]
    
    usr1 = rw
    usr2 = rw
    iitshare = rw
    itblood =
    [tshop:/tb2c]
    @devteam = rw
    itblood =
     
    [tshop:/tb2b2c]
    @devteam = rw
    itblood = r
    

    启动关闭

    1.启动
    方式一:svnserve -d -r /opt/svn/ #默认的启动端口号为3690
    方式二:su – svn -c “svnserve -d –listen-port 9999 -r /opt/svn/”

    检查是否启动

    netstat -tunlp | grep svn
    

    如果显示以下信息说明启动成功
    tcp 0 0 0.0.0.0:9999 0.0.0.0:* LISTEN 10973/svnserve

    2.关闭

    killall svnserve
    

    3.访问

     svn://{your-server-ip}:3690/wechat/
    

    相关文章

      网友评论

        本文标题:linux服务器 svn安装

        本文链接:https://www.haomeiwen.com/subject/qjwkhftx.html