Linux 搭建 SVN 服务器及利用教程

锦通  金牌会员 | 2024-9-28 05:02:27 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 880|帖子 880|积分 2640

Linux 搭建 SVN 服务器 及利用教程


  • 查抄情况

    • 查察体系下有没有安装过或有安装过老版本的SVN
      1. rpm -qa subversion                //如果没安装过则什么都不显示
      复制代码
    • 假如有老版本先运行一下,删除老版本
      1. yum -y remove subversion
      复制代码

  • 搭建SVN服务器

    • linux服务器安装svn
    1. yum -y install subversion
    复制代码
      

    • 查抄是否安装乐成
    1. svn --version
    复制代码
      

    • 假如表现如下内容阐明安装乐成
    1. svn, version 1.10.2 (r1835932)
    2.    compiled Nov  3 2020, 23:13:15 on x86_64-redhat-linux-gnu
    复制代码

  • 创建SVN堆栈

    • 创建版本库目次(目次地点可以自定义)
    1. #(此目录为后面创建版本库提供存放位置,repository默认是把/var/svn作为数据根目录的,开机启动默认也是从这里):
    2. mkdir -p /home/svn/repository
    复制代码
      

    • 非root用户必要更改目次权限
    1. chmod 755 -R /home/svn/repository
    复制代码
      

    • 创建版本堆栈
    1. #repository为项目名称,checkout项目时会用到
    2. svnadmin create /home/svn/repository
    复制代码
    ​ 创建完成之后进入刚才的目次就能看到下面几个文件:
    1. conf   db   format    hooks    locks    README.txt
    复制代码
      

    • conf:是这个堆栈配置文件(堆栈用户访问账户,权限)
    • format:是一个文本文件,里边只放了一个整数,表现当前文件库配置的版本号
    • hooks:放置hook脚步文件的目次
    • locks:用来放置subversion的db锁文件和db_logs锁文件的目次,用来追踪存取文件库的客户端
    • db:利用命令创建SVN堆栈之后上传的文件并不能直接看到,由于文件被svn管理起来了储存在db目次。
    conf目次下存放三份紧张的配置文件,如下:
       

    • authz:负责账号权限的管理,控制账号是否读写权限
    • passwd:负责账号和暗码的用户名单管理
    • svnserve.conf:svn服务器配置文件

  • 修改SVN堆栈的配置文件

    • 修改passwd文件信息,用户添加暗码
      直接将账号和暗码信息追加到文件中即可,格式为:账号 = 暗码,用户权限假如是设的分组,仍需设置每个角色对应的暗码
      1. [users]
      2. panyma=123456
      复制代码
    • 修改authz文件:设置用户权限
      在文件内容的末尾,添加如下:
      1. # 表示根目录下用户panyma拥有读和写的权限
      2. 第一种方式:单个添加:
      3. [/]
      4. panyma=rw
      5. 第二种方式:用户分组,再设权限
      6. [groups]
      7. # 按用户组分权限
      8. admin = admin,admin1 # admin为用户组,等号之后的为用户
      9. [/]                         # 表示svn仓库根目录(/home/svn/repository)
      10. @admin = rw         # 表示admin组对仓库目录有读写权限
      复制代码
      1. 备注:版本库的目录格式如下:
      2. [<版本库>:/项目/目录]
      3. @<用户组名> = 权限
      4. <用户名> = 权限
      5. 1.权限的主体可以是用户组,用户或者*,用户组在前面要以@开头,*表示全部用户
      6. 2.权限分为:r ,w, rw和null ,null空表示没有任何权限。
      7. 3.auhtz配置文件中的每个参数,开头不能有空格,对于组要以@开头,用户不需要。
      8. 注意[/]中的斜杠,这里如果斜杠反了,authz-db = authz 一直会提示“认证失败”
      9. 其中[]內容有許多写法:
      10. [/],表示根目录及其一下的路径,根目录是svnserver启动时指定好的,上述实例中我们指定为:/svn/svndata([/]=/svn/svndata).[/]就是表示对全部版本设置的权限
      11. [test:/],表示对版本库test设置权限;
      12. [test:/svnadmin],表示对版本库test中的svnadmin项目设置权限;
      13. [test:/svnadmin/second],表示对版本库test中的svnadmin项目的目录设置权限;
      复制代码
    • 修改svnserve.conf文件
      原始文件内容都被解释掉的,我们只必要去掉指定内容前解释即可,如下:
      1. # 鉴权:是指验证用户是否拥有访问系统的权利。
      2. # 取值范围"write"为可读可写,"read"为只读,"none"表示无访问权限。
      3. #控制非鉴权用户访问版本库的权限
      4. #anon-access = none
      5. # 控制鉴权用户访问版本库的权限。
      6. auth-access = write
      7. # 指定用户名口令文件名,即访问时要输用户名和密码,如果在同一目录下,就等于文件名即可
      8. password-db = passwd
      9. # authz 文件的位置,如果在同一目录下,就等于文件名即可
      10. authz-db = authz
      11. realm = /home/svn/repository 【指定版本库的认证域,即在登录时提示的认证域名称,改成自己的版本库】
      复制代码

  • 开启防火墙
    多数情况下服务器安装完成,配置完成后,无法毗连svn服务器,均是防火墙问题
    首先要明确CentOS7的默认防火墙为firewallD。subversion的默认端口为3690,假如没有打开会报错:
    1. sudo firewall-cmd --permanent --add-service=telnet
    2. sudo firewall-cmd --permanent --add-port=3690/tcp
    3. sudo firewall-cmd --reload
    复制代码
    centOS 7 防火墙开启、关闭与查察状态:
    1. systemctl start firewalld
    2. systemctl stop firewalld
    3. systemctl status firewalld
    复制代码
  • 启动svn服务器
    1. # -d : 守护进程  -r : svn数据根目录
    2. svnserve -d -r /home/svn/repository #用root权限启动
    复制代码
    查察SVN服务
    1. ps aux|grep svnserve #默认端口为:3690
    复制代码
    开始svn服务
    1. start svnserve.service        #开始服务
    2. stop svnserve.service        #停止服务
    复制代码
  • 检出项目
进入windows 检出项目:
地点栏输入 svn://项目ip:3690/repository
项目ip可以通过 ip addr 或者 ifconfig 查察 inet,repository为当初建立的SVN版本库

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

锦通

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表