美文网首页linux
ubuntu 搭建SVN服务器

ubuntu 搭建SVN服务器

作者: 五帝星一 | 来源:发表于2021-03-01 12:43 被阅读0次

    SVN安装

    root@majin-All-Series:~# sudo apt-get -y install subversion
    正在读取软件包列表... 完成
    正在分析软件包的依赖关系树
    正在读取状态信息... 完成
    subversion 已经是最新版 (1.9.7-4ubuntu1)。
    下列软件包是自动安装的并且现在不需要了:
      fonts-liberation2 fonts-opensymbol gir1.2-geocodeglib-1.0
      gir1.2-gst-plugins-base-1.0 gir1.2-gstreamer-1.0 gir1.2-gudev-1.0
      gir1.2-udisks-2.0 grilo-plugins-0.3-base gstreamer1.0-gtk3
      libboost-date-time1.65.1 libboost-filesystem1.65.1
      libboost-iostreams1.65.1 libboost-locale1.65.1 libcdr-0.1-1
      libclucene-contribs1v5 libclucene-core1v5 libcmis-0.5-5v5 libcolamd2
      libdazzle-1.0-0 libe-book-0.1-1 libedataserverui-1.2-2 libeot0
      libepubgen-0.1-1 libetonyek-0.1-1 libevent-2.1-6 libexiv2-14
      libfreerdp-client2-2 libfreerdp2-2 libgee-0.8-2 libgexiv2-2
      libgom-1.0-0 libgpgmepp6 libgpod-common libgpod4 liblangtag-common
      liblangtag1 liblirc-client0 liblua5.3-0 libmediaart-2.0-0
      libmspub-0.1-1 libodfgen-0.1-1 libqqwing2v5 libraw16 librevenge-0.0-0
      libsgutils2-2 libssh-4 libsuitesparseconfig5 libvncclient1 libwinpr2-2
      libxapian30 libxmlsec1 libxmlsec1-nss lp-solve media-player-info
      python3-mako python3-markupsafe syslinux syslinux-common
      syslinux-legacy usb-creator-common
    使用'sudo apt autoremove'来卸载它(它们)。
    升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 2 个软件包未                                                                                                                  被升级。
    

    创建版本库

    创建目录文件夹

    majin@majin-All-Series:~$ sudo mkdir /home/svn
    majin@majin-All-Series:~$ sudo mkdir /home/svn/project_common
    majin@majin-All-Series:~$
    

    创建svn版本库

    majin@majin-All-Series:~$ sudo svnadmin create /home/svn/project_common/
    majin@majin-All-Series:~$
    

    SVN 管理

    为了便于管理,将所有版本库的密码和权限设置在同一个文件下面,操作步骤如下:

    • 取出~/project_common/conf/的authz和passwd两个文件到svn根目录下面
    majin@majin-All-Series:/home/svn/project_common$ sudo cp ./conf/authz ../
    [sudo] majin 的密码:
    majin@majin-All-Series:/home/svn/project_common$ sudo cp ./conf/passwd ../
    majin@majin-All-Series:/home/svn/project_common$
    
    • 修改每个版本库目录conf文件夹下面的svnserve.conf文件
    majin@majin-All-Series:/home/svn$ sudo vim project_common/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.apache.org/ for more information.
    
    [general]
    ### The anon-access and auth-access options control access to the
    ### repository for unauthenticated (a.k.a. anonymous) users and
    ### authenticated users, respectively.
    ### Valid values are "write", "read", and "none".
    ### Setting the value to "none" prohibits both reading and writing;
    ### "read" allows read-only access, and "write" allows complete
    ### read/write access to the repository.
    ### The sample settings below are the defaults and specify that anonymous
    ### users have read-only access to the repository, while authenticated
    ### users have read and write access to the repository.
    # anon-access = read
    anon-access = none  ## 增加此行
    # auth-access = write
    anon-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
    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
    ### directory containing this file.  The specified path may be a
    ### repository relative URL (^/) or an absolute file:// URL to a text
    ### file in a Subversion repository.  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
    authz-db = ../../authz   ## 增加此行
    

    定义一下几个角色用来测试

    +  配置管理员(svnadmin),用来管理整个库
    +  项目经理(manage),用来相关管理文档
    +  开发人员 (dev),测试开发是否正常
    

    创建方法

    打开svn目录下的passwd文件,创建方法是在[user]下面添加 username = passwd,记得“=”前后的空格,如下图:(svnadmin控制所有项目,统一管理)

    majin@majin-All-Series:/home/svn$ sudo vim 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.
    
    [users]
    # harry = harryssecret
    # sally = sallyssecret
    #
    svnadmin = svnadmin
    majin = majin
    louwen = louwen
    lqq = lqq
    lcl = lcl
    test1 = test1
    dev = dev
    pm = pm
    
    

    启动svn服务

    一次启动

     sudo svnserve -d -r /home/svn
    

    开机自启动svn

    • 在/etc/init.d目录建立一个脚本文件svnd.sh
    sudo vim /etc/init.d/svnd.sh
    
    #! /bin/bash
    # svn server startup
    svnserve -d -r /home/svn
    
    :wq
    
    sudo chmod 777 svnd.sh
    
    • 更新修改权限:
    majin@majin-All-Series:/etc/init.d$ update-rc.d svnd.sh defaults
    ==== AUTHENTICATING FOR org.freedesktop.systemd1.reload-daemon ===
    重新载入 systemd 状态需要认证。
    Authenticating as: majin,,, (majin)
    Password:
    ==== AUTHENTICATION COMPLETE ===
    majin@majin-All-Series:/etc/init.d$
    

    访问

    svn://ip/project_common

    [参考] https://www.cnblogs.com/daxuezhidao/p/5716213.html

    相关文章

      网友评论

        本文标题:ubuntu 搭建SVN服务器

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