QQ:971751392 (欢迎交流)

linux搭建SVN服务器

安装步骤如下:

1、yum install subversion

 
2、输入rpm -ql subversion查看安装位置,如下图:
 
我们知道svn在bin目录下生成了几个二进制文件。
输入 svn --help可以查看svn的使用方法,如下图。
 
 
 
3、创建svn版本库目录
mkdir -p /var/svn/svnrepos
 
4、创建版本库
svnadmin create /var/svn/svnrepos
执行了这个命令之后会在/var/svn/svnrepos目录下生成如下这些文件
 
5、进入conf目录(该svn版本库配置文件)
authz文件是权限控制文件
passwd是帐号密码文件
svnserve.conf SVN服务配置文件
 
6、设置帐号密码
vi passwd
在[users]块中添加用户和密码,格式:帐号=密码,如dan=dan
 
7、设置权限
vi authz
在末尾添加如下代码:
[/]
dan=rw
w=r
意思是版本库的根目录dan对其有读写权限,w只有读权限。
 
8、修改svnserve.conf文件
vi svnserve.conf
打开下面的几个注释:
anon-access = read #匿名用户可读
auth-access = write #授权用户可写
password-db = passwd #使用哪个文件作为账号文件
authz-db = authz #使用哪个文件作为权限文件
realm = /var/svn/svnrepos # 认证空间名,版本库所在目录
 
9、启动svn版本库
svnserve -d -r /home/svn/svnrepos
查看svn 版本 /usr/bin/svnversion --version

问题:

svnserve: 不能绑定服务器套接字: 地址已在使用

如果出现,这样的错误信息,“svnserve: 不能绑定服务器套接字: 地址已经被使用”
那先把svnserve进程干掉。
具体做法是
$ ps -aux  #查看进程,svnserve的pid为37305
$ kill -9 37305#干掉svnserve
再次运行   svnserve -d -r /home/svn/svnrepos

问题:2自动启动
vi /etc/rc.local
在最后一行加上
svnserve -d -r /repo/aaa

svnserve.conf:这个最详细,注意每个配置前面都不能有空格

1 安装SVN

官网下载:http://subversion.apache.org/packages.html

SVN客户端:TortoiseSVN,官网下载:http://tortoisesvn.net/downloads.html

# yum install subversion:

1.新建一个目录用于存储SVN所有文件

  1. # mkdir /svn

2. 新建一个资源仓库

  1. # svnadmin create /svn/project
  2. # ls /svn/project/
  3. conf db format hooks locks README.txt

目录用途说明:

l hooks目录:放置hook脚本文件的目录

l locks目录:用来放置subversion的db锁文件和db_logs锁文件的目录,用来追踪存取文件库的客户端

l format文件:是一个文本文件,里面只放了一个整数,表示当前文件库配置的版本号

l conf目录:是这个仓库的配置文件(仓库的用户访问账号、权限等)

3. 配置svn服务的配置文件svnserver.conf文件

  1. # vi /svn/project/conf/svnserve.conf
  2. [general]
  3. anon-access = none
  4. auth-access = write
  5. password-db = /svn/project/conf/passwd
  6. authz-db = /svn/project/conf/authz
  7. realm = My Test Repository #这是个提示信息

保存

4. 添加两个访问用户及口令

  1. # vi /svn/project/conf/passwd
  2. [users]
  3. xiaoran.shen = 123456
  4. test1 = 123456
  5. test2 = 123456

保存

注意:对用户配置文件的修改立即生效,不必重启svn服务。

5. 配置新用户的授权文件

  1. # vi /svn/project/conf/authz
  2. [groups]
  3. admin = xiaoran.shen,test1
  4. user = test2
  5. [/]
  6. @admin = rw
  7. @user = r
  8. * =

保存

格式说明:

版本库目录格式:

[<版本库>:/项目/目录]

@<用户组名> = <权限>

<用户名> = <权限>

/ 表示对根目录(即/svn/project目录)下的所有子目录范围设置权限;

[/abc] 表示对资料库中abc项目设置权限;

创建一个admin组,组成员包括xiaoran.shen和test1

创建一个user组,成员只有test2;

admin组对目录有读写权限;

单个用户test2有读写权限;

*=表示除了上面设置的权限用户组以外,其他所有用户都设置空权限,空权限表示禁止访问本目录,这很重要一定要加上。

注意:对权限配置文件的修改立即生效,不必重启svn。

6. 启动svn服务

svnserve -d -r /svn/project/

注意:不要使用系统提供的 /etc/init.d/svnserve start 来启动,因为系统默认的启动脚本中没有使用 –r /svn/project参数指定一个资源。这种情况下启动的svn服务,客户端连接会提示“svn: No repository found in 'svn://192.168.11.229/project' ”这样的错误。

默认svn服务器端口是3690。

杀死svn服务:

  1. # ps -ef|grep svn
  2. root 4642 1 0 16:08 ? 00:00:00 svnserve -d -r /svn/project/
  3. root 4692 3676 0 16:13 pts/2 00:00:00 grep svn
  4. # kill -9 4642

若要使用/etc/init.d/svnserve 脚本,可以修改start()函数部分,如下:

  1. start() {
  2. [ -x $exec ] || exit 5
  3. [ -f $config ] || exit 6
  4. echo -n $"Starting $prog: "
  5. daemon --pidfile=${pidfile} $exec $args -r /svn/project
  6. retval=$?
  7. echo
  8. [ $retval -eq 0 ] && touch $lockfile
  9. return $retval
  10. }

完成

2 使用客户端连接

2.1 使用windows的客户端

打开TortoiseSVN Repository Browser工具

在URL中输入:

svn://192.168.11.229回车,提示输入用户名和口令

2.2 使用Linux下的命令行

  1. # svn co svn://192.168.11.229

3 FAQ

3.1 命令行方式连接,提示svn: No repository found in 'svn://192.168.11.229/project'错误?

解决:启动svn服务的时候没有使用-r /svn/project参数,没有指明资源库的具体路径。使用# svnserve -d -r /svn/project/ 命令来启动就可以了,不要使用/etc/init.d/svnserver脚本。

3.2 执行命令# svn co svn://192.168.11.229/project时提示“svn: Authorization failed”错误?

解决:一般这种授权失败的错误原因都来自conf/authz文件的配置

正确的配置如下:

  1. [groups]
  2. admin = xiaoran.shen,test1
  3. user = test2
  4. [/]
  5. @admin = rw
  6. @user = rw
  7. * =

保存

myeclipse

Linux(centos)搭建SVN服务器完美方案及遇到的问题--费元星站长的更多相关文章

  1. Linux(CentOS)搭建SVN服务器全攻略

    虽然在windows上搭建SVN很简单,但是效能却不高,这当然是和linux相比了.然而在linux上搭建SVN却非常繁琐,所以今天这篇文章就来一步一步教您如何在Centos上搭建SVN 安装#yum ...

  2. 使用Linux(CentOS)搭建SVN服务器全攻略

    虽然在windows上搭建SVN很简单,但是效能却不高,这当然是和linux相比了.然而在linux上搭建SVN却非常繁琐,所以今天这篇文章就来一步一步教您如何在Centos上搭建SVN 安装 #yu ...

  3. Linux(CentOS)搭建SVN服务器

    1.安装命令 yum -y install subversion 查看SVN安装位置 rpm -ql subversion 查看SVN版本 svnserve --version 2.创建版本库根目录( ...

  4. [记录]CentOS搭建SVN服务器(主从同步)

    CentOS搭建SVN服务器(主从同步)1.安装步骤如下: 1)安装: #yum install subversion 2)查看安装位置: #rpm -ql subversion 3)查看版本: #/ ...

  5. Linux下搭建SVN服务器及自动更新项目文件到web目录(www)的方法

    首先搭建SVN服务器 1,安装SVN服务端 直接用apt-get或yum安装subversion即可(当然也可以自己去官方下载安装) sudo apt-get install subversion   ...

  6. CentOS搭建SVN服务器,并通过Apache HTTP方式访问

    摘要:本文主要讲述了在centos 6.5环境下搭建svn服务器,可通过svn:\\IP方式访问.同时由于部分公司内网端口限制,并不能访问外网的svn服务器,所以特地结合了apache服务器,使得可以 ...

  7. 【svn】Centos搭建svn服务器环境

    1.需求描述 在Centos系统中搭建svn服务器环境 2.搭建过程 2.1 yum安装svn [root@localhost /]# yum install svn  2.2 新建目录存储svn目录 ...

  8. centos搭建svn 服务器 并同步到web 目录(总结)

    配置搭建步骤: Linux平台的SVN服务器的配置及搭建 从本地提交代码到svn代码库. 将代码库中代码同步到web目录: 1.在web目录中checkout版本库 进入/home/www目录下  ( ...

  9. CentOS 搭建 SVN 服务器 及使用教程

    服务器与客户端 1.搭建SVN服务器 ① CentOS安装SVN 命令: yum -y install subversion 检查是否安装成功 命令: svn --version 如果显示如下内容说明 ...

随机推荐

  1. Objective-C(装箱和拆箱)

    概述 从前面的博文我们也可以看到,数组和字典中只能存储对象类型,其他基本类型和结构体是没有办法放到数组和字典中的,当然你也是无法给它们发送消息的也就是说有些NSObject的方法是无法调用的,这个时候 ...

  2. Django:Django的路由系统

    一,URLconf配置 1,基本格式 from django.conf.urls import url urlpatterns = [ url(正则表达式, views视图函数,参数,别名), ] 2 ...

  3. selenium定位学习回顾

    之前已经专门学过了定位,但后来因为浏览器比较方便,可以直接复制xpath和css进行定位,个人觉得自己快遗忘了这块,所以专门来回顾一下, 顺便记录一下,以便后期查看. 进行web页面自动化测试,对页面 ...

  4. 【转】Java虚拟机类型卸载和类型更新解析

    [摘要]         前面系统讨论过java类型加载(loading)的问题,在这篇文章中简要分析一下java类型卸载(unloading)的问题,并简要分析一下如何解决如何运行时加载newly ...

  5. 打开eclipse出现an error has occurred.see the loh file

    解决方案: 1,打开eclipse安装目录下的eclipse.ini文件:2,打开的文本文件最后添加一行--add-modules=ALL-SYSTEM3,保存重新打开Eclipse. 测试过已经ok

  6. EntityFrameWork简单操作 EF数据上下文对象操作数据增删改差及批处理

    /// <summary> /// EF针对 留言数据库 的 数据上下文对象!!!! /// </summary> static LeaveWordBoradEntities ...

  7. 【luogu P3950 部落冲突】 题解

    题目连接:https://www.luogu.org/problemnew/show/P3950 1.像我这种学数据结构学傻了的 2.边权化点权 所有点权初始化0 3.对于战争 将深度较深的-1,对于 ...

  8. java基础(杂记)

    java基础夯实(杂记):1:创建实例对象可以通过无参的构造函数然后调用成员变量去初始化属性,也可以自己定义有参构造方法直接初始化属性,当属性为private时我们可以通过getset方法间接访问:2 ...

  9. 买手机时几GB+几GB啥意思

    48GB 就是你每次下载手机软件呀.浏览图片呀.这些东西都放在48G里.你每次查看手机内存,就会看到你的48G用了多少.但是你什么时候看到你的4GB用了多少,都是那些360加速球呀提示你手机内存占用过 ...

  10. [UNIX]UNIX常用命令总结

    (1)查看服务器IP信息 $netstat -in (2)查看挂载磁盘信息 #sam #需要在root账号下查看