1.在终端中直接输入  sudo apt-get install subversion,选择安装即可
来这个subversion同时包含了服务端和客户端。

2.(可选)看版本命令 svnserve --version。如果出现下面图片,说明安装成功

3.添加svn管理用户和subversion组(这步很重要,不然也会导致authentication错误)

sudo adduser svnuser(添加svnuser用户)

sudo addgroup subversion(添加subversion组)

sudo addgroup svnuser subversion

4.开始创建项目目录

sudo mkdir /home/svn (这里的svn即为版本库目录文件,以后所有的操作都在/home/svn下

cd /home/svn

mkdir one(这里即为一个版本库文件,文件名可以任意取)

chown -R root:subverison one

chmod -R g+rws one

5.创建SVN文件仓库,即为上面建立的one文件目录

svnadmin create /home/svn/one

到这一步,安装基本完成,开始改配置。

6.在/home/svn/one文件目录中可以看到conf文件夹,可针对conf 文件夹中的authz、passwd、svnserve.conf进行设置,svnserve.conf主要设置整体的安全策略,passwd则设置用户 名和密码,authz则是设置具体的用户有什么权限。

7.访问权限设置

(1)编辑svnserve.conf文件,编辑svnserve.conf文件。

anon-access:匿名用户的权限,可以为read,write和none,默认值read。不允许匿名用户访问:anon-access = none

auth-access:认证用户的权限,可以为read,write和none,默认值write。

password-db:密码数据库的路径,去掉前边的#

authz-db:认证规则库的路径,去掉前边的#。

注意:这些配置项的行都要顶格,否则会报错。修改配置后需要重启svn才能生效。

(2)编辑passwd文件,加入用户名和密码(如下为示例)

这是每个用户的密码文件,比较简单,就是“用户名=密码”,采用的是明码。如allen=1(apache模式下密码为经过加密的变化)

[users]
allen = 1
ellen = 1
test = 1

(3)编辑authz文件,配置用户访问权限(如下为示例)

1. [groups] section:为了便于管理,可以将一些用户放到一个组里边,比如:
[groups]
owner=allen,ellen
[/]
@owner= rw
2. groups下边的sections表示对一个目录的认证规则,比如对根目录的认证规则的section为[/]。设置单用户的认证规则时一个用户一行,如:

[/]

allen=rw  #allen对根目录的权限为rw

ellen=r   #ellen对根目录的权限为r

如果使用group,需要在group名字前加@,如

@owner=rw  #group owner中的用户均为rw,等价于上边的两句话

启动时如果从/home/svn/one启动,/就是one目录,用如上方式以one目录为根设置权限。

如果从/home/svn/启动,每个仓库根还是自己的起始目录。可以采用如上方式设置astar的权限,也可以采用如下方式:

[one:/]

@owner=rw

简言之,每个仓库的根目录(/)就是自己的起始目录;[repos:/]这种方式只适用于多仓库的情况;[/]适合于单仓库和单仓库的方式。更多关于单仓库和多仓库的问题,请见
http://http://bbs.iusesvn.com/thread-157-1-1.html

8.启动svn服务 svnserve -d -r -T /home/svn

描述说明:
-d 表示svnserver以“守护”进程模式运行

-T表示以线程模式运行,增加效率
-r 指定文件系统的根位置(版本库的根目录),这样客户端不用输入全路径,就可以访问版本库。如: svn://你的IP/one

这个时候SVN就安装完成了。

然后在WINDOW下面安装客户端tortoise SVN(可能这里大家要问,为什么客户端要安装在WINDOWS下面,因为毕竟很多程序员调试代码都是在WINDOWS下面,而且查看代码什么的都是WINDOWS下面方便)。

9.这时候可以在客户端用用户名和密码登陆使用了,这里大家都会。

这个时候输入密码的时候就很有可能遇到authentication failed的提示。如下图所示:

,让我纠结了很久的一个问题

后来发现问题的原因是passwd文件中所有行前面都不能有空格,如果有空格的话就会提示这个错误。

总之,大家在配置的过程一定要注意authz passwd svnserve.conf文件所有行的前面都不能有空格;注意建立svn管理用户和组;另外注意单仓库和多仓库权限的配置问题和它们的访问路径问题。

这样的话,基本上就可以正常地享受SVN之旅了。

谢谢大家。有问题大家可以一起交流学习。

9 接下来测试验证,在客户机上找个目录执行一下命令:

复制代码

代码如下:

svn co svn://192.168.0.12/one --username=allen --force
svn://192.168.0.12/one就是新建的代码仓库的地址,假设刚才的服务是建在192.168.0.12上的。参数--username是指定用户名的,不指定的话会以
当前的系统用户登录,系统用户和SVN用户是不相干的两套,所以还是人工指定的好。--force参数可有可无,如果在同一个地址上反复测试,删了建建了
删,SVN客户端会缓存住上一次成功checkout的UUID,如果删了再建UUID会发生改变,客户端校验不一致会提示“Repository
UUID 'xxx' doesn't match expected UUID
'xxx'”,加--force参数就不理会这个校验,强行checkout。

如果顺利的话,会提示“Checked out revision 0.”,然后在当前目录下生成一个akcms的目录,里面就是代码仓库的代码了。

8、设置SVN开机启动

(1).创建执行脚本svn.sh(/root路径下)

#!/bin/bash
svnserve -d -r /home/svn
(2).添加可执行权限
#chmod ug+x /root/svn.sh
(3).添加自动运行

#vim /etc/init.d/rc.local

在最后添加一行内容如下:

/root/svn.sh

(4).检查
重启服务器,使用ps -aux |grep svn看看svn进程是否启动了。

停止svn 服务器

1
[root@singledb conf]# ps -ef | grep svn

root      4592     1  0 18:04 ?        00:00:00 svnserve -d -r /u02/svn


root      4594  3709  0 18:04 pts/1    00:00:00 grep svn


(2)停止SVN服务:

1
2
ps -aux |grep svn
kill -9 进程杀掉

参考文献:

http://blog.csdn.net/rogerzhanglijie/article/details/39315455

SVN 服务器搭建

http://wenku.baidu.com/link?url=oy64ALNrNezy9SnpApKc_aC7U51xHImxL5MWvK7vIJrTMJBxcUGcHTBDIKYMSw6tTt3wmLYTfNeilM-hNY0sgQDQQB1hQ8CllDvh0-iDok3

ubuntu系统上svn服务器搭建步骤分享

http://www.jb51.net/os/Ubuntu/134818.html

Ubuntu搭建SVN服务器

http://blog.csdn.net/gavin_dinggengjia/article/details/7558635

ubuntu下svn使用指南

http://blog.csdn.net/dragon810913/article/details/5797593

ubuntu 如何搭建svn 服务器的更多相关文章

  1. ubuntu下搭建svn服务器

    [ubuntu下搭建svn服务器] 1.创建目录 mkdir ~/svn/repository/ 2.创建仓库 svnadmin create repository 3.进入 repository/c ...

  2. Ubuntu系统搭建SVN服务器

    Ubuntu系统搭建SVN服务器 参考地址:http://git.devzeng.com/blog/aliyun-ubuntu-svn-server.html 安装软件 依次在终端中执行下面的命令安装 ...

  3. Ubuntu环境搭建svn服务器

    记录一次使用Ubuntu环境搭建svn服务器的详细步骤 一.查看是否已经安装svn 命令:svn如果显示以下信息,说明已安装   二.卸载已安装的svn 命令:sudo apt-get remove ...

  4. 【转】Ubuntu环境搭建svn服务器

    记录一次使用Ubuntu环境搭建svn服务器的详细步骤 一.查看是否已经安装svn 命令:svn如果显示以下信息,说明已安装 二.卸载已安装的svn 命令:sudo apt-get remove -- ...

  5. 【转】阿里云Ubuntu系统搭建SVN服务器

    ##SVN服务器相关软件安装 1.使用SSH远程服务器 (1)对于MAC OS/Liunx的用户直接打开终端输入 ssh  用户名@实例名,例如 ssh root@192.168.1.100 执行上面 ...

  6. ubuntu中搭建svn服务器步骤

    1.安装软件包: sudo apt-get install subversion 2.建立相关文件夹(这里svn放在home文件夹中) cd /home sudo mkdir svn cd /home ...

  7. Ubuntu/CentOs 搭建SVN服务器

    安装 CentOS : yum install subversion Ubuntu: sudo apt-get install subversion 查看Subversion版本: 使用“svn -- ...

  8. Ubuntu 下搭建SVN服务器

    root@iZ25q0jd99eZ:~# sudo apt-get install subversion root@iZ25q0jd99eZ:/etc/subversion# mkdir /svn r ...

  9. Ubuntu 14.04 下搭建SVN服务器 svn://

    Ubuntu 14.04 下搭建SVN服务器 svn:// 安装软件包: sudo apt-get install subversion 之后选择SVN服务文件及配置文件的放置位置.我放在了/srv下 ...

随机推荐

  1. 1067 试密码 (20分)C语言

    当你试图登录某个系统却忘了密码时,系统一般只会允许你尝试有限多次,当超出允许次数时,账号就会被锁死.本题就请你实现这个小功能. 输入格式: 输入在第一行给出一个密码(长度不超过 20 的.不包含空格. ...

  2. SpringBoot2 整合 Zookeeper组件,管理架构中服务协调

    本文源码:GitHub·点这里 || GitEE·点这里 一.Zookeeper基础简介 1.概念简介 Zookeeper是一个Apache开源的分布式的应用,为系统架构提供协调服务.从设计模式角度来 ...

  3. schedule of 2016-09-12~2016-09-18(Monday~Sunday)——1st semester of 2nd Grade

    2016/9/12 Monday 1.send present to Teacher Wei&hu 2.make ppt for 1st database 2.0 meeting for al ...

  4. springmvc接收json数据的常见方式

    经常使用Ajax异步请求来进行数据传输,传的数据是json数据,json数据又有对象,数组.所有总结下springmvc获取前端传来的json数据方式:1.以RequestParam接收前端传来的是j ...

  5. OpenStack Identity API v3 extensions (CURRENT)

    Table Of Contents Identity API v3 extensions (CURRENT) OS-ENDPOINT-POLICY API Associate policy and e ...

  6. 体验.NET Core 命令行应用程序-CommandLineUtils

    前言 在我们开发中可能需要设计一次性应用程序,这些实用程序可以利用接近原始源代码的优势,但可以在与主Web应用程序完全独立的安全性上下文中启动.具体在 [管理过程](https://12factor. ...

  7. IO流之处理流用法总结

    处理流之一:缓冲流1.为了提高数据读写的速度,Java API提供了带缓冲功能的流类,在使用这些流类时,会创建一个内部缓冲区数组,缺省使用8192个字节(8Kb)的缓冲区. 2.缓冲流要“套接”在相应 ...

  8. must appear in the GROUP BY clause or be used in an aggregate function

    今天在分组统计的时候pgsql报错 must appear in the GROUP BY clause or be used in an aggregate function,在mysql里面是可以 ...

  9. SEATA 分布式事务入门DEMO

    Simple Extensible Autonomous Transacation Architecture,seata是简单的.可扩展.自主性高的分布式架构 SEATA Server Configu ...

  10. js正则定义支付宝账号、手机号、邮箱

    一.支付宝账号:可以只输入数字.字母.字母(数字)+数字(字母),其中只字母中可以含有@._或者.也可以三者都可以包含并且可以在任意位置,限制:小于等于30位(可根据需求自定义范围): let  zh ...