美文网首页
Linux安装SVN服务端(centos 7 )

Linux安装SVN服务端(centos 7 )

作者: LemonTree7 | 来源:发表于2020-05-19 14:22 被阅读0次

    步骤一:安装svn服务器

    1.安装SVN服务

    检查是否已安装

    rpm -qa subversion
    
    出现以上内容说明已经安装

    安装SVN服务器

    yum install httpd httpd-devel subversion mod_dav_svn mod_auth_mysql
    

    验证安装

    cd /etc/httpd/modules
    ls | grep svn
    
    出现以上内容说明安装成功

    查看版本

    svnserve --version
    
    版本号查询
    2.代码库创建

    安装完成后要建立SVN库

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

    执行后,自动建立respositories库,查看/opt/svn/respositories文件夹包含了conf,db,format,hooks,locks,README.txt等文件,说明一个SVN库已经建立。


    查看respositories库

    3.配置版本库
    进入上面conf文件夹下,进行配置

    • 用户密码passwd配置
     vi + passwd  //+表示光标放在文件最低端
    

    修改passwd为一下内容

    [users]
    # harry = harryssecret
    # sally = sallyssecret
    xuyunfeng=******
    # <用户名> = <口令>
    
    设置账号密码
    • 权限控制authz配置
     vi + authz
    

    设置哪些用户可以访问哪些目录,向authz文件追加以下内容

    [/]
    xuyunfeng=rw  //给该用户访问所有库的权限  或 [repositories:/project]  //repository库的根目录权限xuyunfeng=rw
    
    # [groups]
    # g_admin = admin,thinker
    # <用户组> = <用户列表>
    
    #[<版本库名>:<路径>] 
    # [admintools:/]
    # @g_admin = rw      //表示admin账号与thinker账号对admintools版本库拥有读写权限
    # * =                //表示其他用户对admintools版本库无任何权限
    
    # [test:/home/thinker]
    # thinker = rw   //表示thinker账号对test版本库下/home/thinker文件夹拥有读写权限
    # * = r          //表示其他用户对test版本库下/home/thinker拥有读权限
    

    / 表示根目录及以下,根目录是svnserve启动时指定的,我们指定的是/opt/svn;/ 就是指对全部版本库都具有权限
    repositories:/ 表示对库repositories的根目录设置权限
    tips:

    • 权限配置文件中出现的用户名必须已在用户配置文件中定义。
    • 对权限配置文件的修改立即生效,不必重启svn。
    • 服务svnserve.conf配置

    添加一下内容

    [general]
    #匿名访问的权限,可以是read,write,none,默认为read
    anon-access=none
    #使授权用户有写权限
    auth-access=write
    #密码数据库的路径
    password-db=passwd
    #访问控制文件
    authz-db=authz
    #认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字
    realm=/opt/svn/repositories
    

    这里注意各标签不能错,也不能有重复,不然无法连接.

    • 启动SVN
    svnserve -d -r /opt/svn/repositories(你的svn所在目录)
    
    //查看SVN进程
    ps -ef|grep svn|grep -v grep 
    //root 12538 1 0 14:40 ? 00:00:00 svnserve -d -r /opt/svn/repositories
    
    // 停止重启SVN
    killall svnserve //停止
    svnserve -d -r /opt/svn/repositories // 启动
    

    步骤二:连接SVN

    测试连接
    (1) 在本地电脑上安装TortoiseSVN客户端:
    成功安装TortoiseSVN后在电脑桌面右键有TortoiseSVN提示;选择Repo-browser;会出现一个地址栏;
    (2)在地址栏输入:svn://+服务器IP地址 ;如果安装没问题的话就会进入服务器的资源库

    如果连接不上,采用以下操作
    1.确认SVN服务是否已启动
    在终端输入命令,显示所有进程信息

     ps -ef
    
    image.png
    显示这个说明已经启动

    或者使用以下命令

    ps -aux | grep svnserve
    
    服务已启动

    2.查看端口是否开放
    在终端输入以下命令 查看当前所有tcp端口

     netstat -ntlp
    
    端口已开放

    当前SVN端口为3690

    查看端口号是否能够访问2种方式

    1. 客户端,电脑(windows)打开cmd命令行窗口,使用telnet命令查看端口是否开放(需要安装telnet客户端)【控制面板——程序——启用或关闭windows功能中添加】
    telnet [IP] [端口号]
    
    image.png
    看到这个说明已经成功
    2.在服务器终端中输入以下命令,列出对外开放的端口
    firewall-cmd --list-ports 
    

    查看svn服务端口是否在列表中


    image.png

    如果端口不在列表中 在终端输入如下命令

    firewall-cmd --add-port=3690/tcp --permanent      ##永久添加3690端口
    

    如遇到FirewallD is not running 请查看Linux防火墙设置

    步骤三:SVN设置开机自启动

    Linux服务器端设置svn开机启动
    方法一:
    (1)在Linux服务器跟目录((/root路径下))创建一个脚本文件

    touch svn.sh
    

    2) 进入脚本文件

     vim svn.sh
    

    3)添加一下内容

        #!/bin/bash
        /usr/bin/svnserve -d -r  /opt/svn/repositories
    

    解释一下:
    这里的svnserve路径保险起见,最好写绝对路径,因为启动的时候,环境变量也许没加载。
    绝对路径怎么查?

     which svnserve
    

    4)改该脚本的执行权限

    chmod 777 svn.sh
    

    (5)加入自动运行

     vi /etc/rc.d/rc.local
    

    在末尾添加脚本的路径:

     /root/svn.sh
    

    (6)重启Linux服务器,重启后查看svn服务器是否已经开启

     ps -ef|grep svnserve
    
     如果显示以下信息表示svn已经开启了:
       tcp        0      0 0.0.0.0:3690            0.0.0.0:*               LISTEN
    

    方法二:
    CentOS 7 的 /etc/rc.d/rc.local 是没有执行权限的, 系统建议创建 systemd service 启动服务
    于是查看 systemd 里 svn 的配置文件 /lib/systemd/system/svnserve.service

    [Unit]  
    Description=Subversion protocol daemon  
    After=syslog.target network.target  
      
    [Service]  
    Type=forking  
    EnvironmentFile=/etc/sysconfig/svnserve  
    ExecStart=/usr/bin/svnserve --daemon --pid-file=/run/svnserve/svnserve.pid $OPTIONS  
      
    [Install]  
    WantedBy=multi-user.target 
    

    找到 svn 的 service 配置文件 /etc/sysconfig/svnserve 编辑配置文件

    vi /etc/sysconfig/svnserve  
    

    将 OPTIONS="-r /var/svn" 改为 svn 版本库存放的目录,:wq 保存退出
    在提示符下输入

    systemctl enable svnserve.service
    

    启动服务:

    systemctl start svnserve.service  
    

    查看服务列表状态

    systemctl list-units --type=service  
    

    重启服务器,输入

    ps -aux | grep 'svn'  
    

    相关文章

      网友评论

          本文标题:Linux安装SVN服务端(centos 7 )

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