Linux 搭建 SVN 服务器及使用教程
创始人
2024-09-26 19:55:57
0次

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

  1. 检查环境

    • 查看系统下有没有安装过或有安装过老版本的SVN

      rpm -qa subversion		//如果没安装过则什么都不显示 
    • 如果有老版本先运行一下,删除老版本

      yum -y remove subversion 
  2. 搭建SVN服务器

    • linux服务器安装svn
    yum -y install subversion 
    • 检查是否安装成功
    svn --version 
    • 如果显示如下内容说明安装成功
    svn, version 1.10.2 (r1835932)    compiled Nov  3 2020, 23:13:15 on x86_64-redhat-linux-gnu 
  3. 创建SVN仓库

    • 创建版本库目录(目录地址可以自定义)
    #(此目录为后面创建版本库提供存放位置,repository默认是把/var/svn作为数据根目录的,开机启动默认也是从这里): mkdir -p /home/svn/repository 
    • 非root用户需要更改目录权限
    chmod 755 -R /home/svn/repository 
    • 创建版本仓库
    #repository为项目名称,checkout项目时会用到 svnadmin create /home/svn/repository 

    ​ 创建完成之后进入刚才的目录就能看到下面几个文件:

    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服务器配置文件
  4. 修改SVN仓库的配置文件

    • 修改passwd文件信息,用户添加密码

      直接将账号和密码信息追加到文件中即可,格式为:账号 = 密码,用户权限如果是设的分组,仍需设置每个角色对应的密码

      [users] panyma=123456 
    • 修改authz文件:设置用户权限

      在文件内容的末尾,添加如下:

      # 表示根目录下用户panyma拥有读和写的权限 第一种方式:单个添加: [/] panyma=rw  第二种方式:用户分组,再设权限 [groups] # 按用户组分权限 admin = admin,admin1 # admin为用户组,等号之后的为用户  [/] 			# 表示svn仓库根目录(/home/svn/repository) @admin = rw 	# 表示admin组对仓库目录有读写权限 
      备注:版本库的目录格式如下:  [<版本库>:/项目/目录]  @<用户组名> = 权限  <用户名> = 权限  1.权限的主体可以是用户组,用户或者*,用户组在前面要以@开头,*表示全部用户  2.权限分为:r ,w, rw和null ,null空表示没有任何权限。   3.auhtz配置文件中的每个参数,开头不能有空格,对于组要以@开头,用户不需要。  注意[/]中的斜杠,这里如果斜杠反了,authz-db = authz 一直会提示“认证失败” 其中[]內容有許多写法:  [/],表示根目录及其一下的路径,根目录是svnserver启动时指定好的,上述实例中我们指定为:/svn/svndata([/]=/svn/svndata).[/]就是表示对全部版本设置的权限  [test:/],表示对版本库test设置权限;  [test:/svnadmin],表示对版本库test中的svnadmin项目设置权限;  [test:/svnadmin/second],表示对版本库test中的svnadmin项目的目录设置权限; 
    • 修改svnserve.conf文件

      原始文件内容都被注释掉的,我们只需要去掉指定内容前注释即可,如下:

      # 鉴权:是指验证用户是否拥有访问系统的权利。 # 取值范围"write"为可读可写,"read"为只读,"none"表示无访问权限。  #控制非鉴权用户访问版本库的权限 #anon-access = none # 控制鉴权用户访问版本库的权限。 auth-access = write  # 指定用户名口令文件名,即访问时要输用户名和密码,如果在同一目录下,就等于文件名即可 password-db = passwd  # authz 文件的位置,如果在同一目录下,就等于文件名即可 authz-db = authz  realm = /home/svn/repository 【指定版本库的认证域,即在登录时提示的认证域名称,改成自己的版本库】 
  5. 开启防火墙

    多数情况下服务器安装完成,配置完成后,无法连接svn服务器,均是防火墙问题

    首先要明确CentOS7的默认防火墙为firewallD。subversion的默认端口为3690,如果没有打开会报错:

    sudo firewall-cmd --permanent --add-service=telnet sudo firewall-cmd --permanent --add-port=3690/tcp sudo firewall-cmd --reload 

    centOS 7 防火墙开启、关闭与查看状态:

    systemctl start firewalld systemctl stop firewalld systemctl status firewalld 
  6. 启动svn服务器

    # -d : 守护进程  -r : svn数据根目录 svnserve -d -r /home/svn/repository #用root权限启动 

    查看SVN服务

    ps aux|grep svnserve #默认端口为:3690 

    开始svn服务

    start svnserve.service	#开始服务 stop svnserve.service	#停止服务 
  7. 检出项目

进入windows 检出项目:

地址栏输入 svn://项目ip:3690/repository

项目ip可以通过 ip addr 或者 ifconfig 查看 inet,repository为当初建立的SVN版本库

相关内容

热门资讯

玩家必知教程!!浙江游戏大厅透... 您好,浙江游戏大厅这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302】很多玩家在这款...
免费测试版开挂脚本!KELE多... 免费测试版开挂脚本!KELE多功能开挂脚本,KELE切实存在有开挂脚本KELE辅助器是一种具有地方特...
新手必备!凯旋麻将开挂脚本软件... 新手必备!凯旋麻将开挂脚本软件工具,凯旋麻将一直有开挂曝光APP(有挂攻略);凯旋麻将简单的透视挂控...
技巧知识分享外挂app!胡乐竞... 技巧知识分享外挂app!胡乐竞技多功能外挂app,胡乐竞技一直真的有外挂app1、很好的工具软件,可...
重大来袭!上游炸金花辅助器脚本... 重大来袭!上游炸金花辅助器脚本软件工具,上游炸金花最初有辅助器科普APP(果真有挂);上游炸金花是一...
技术分享辅助器工具!微乐江西麻... 技术分享辅助器工具!微乐江西麻将多功能辅助器工具,微乐江西麻将确实真的是有辅助器工具1、完成微乐江西...
实测教程!湖北雅苑麻将辅助挂脚... 实测教程!湖北雅苑麻将辅助挂脚本软件工具,湖北雅苑麻将起初是真的有辅助挂分享APP(有挂工具)是一款...
盘点几款外挂软件!大宝麻将多功... 盘点几款外挂软件!大宝麻将多功能外挂软件,大宝麻将原来存在有外挂软件大宝麻将脚本下载中分为三种模型:...
AI教程!微乐四川麻将辅助挂脚... AI教程!微乐四川麻将辅助挂脚本软件工具,微乐四川麻将果然有辅助挂分享APP(真实有挂);一、微乐四...
专业讨论辅助器技巧!开心娱乐多... 专业讨论辅助器技巧!开心娱乐多功能辅助器技巧,开心娱乐一贯真的是有辅助器技巧1、下载好开心娱乐透视辅...