DDR爱好者之家 Design By 杰米

想在一台Ubuntu上搭建SVN服务,在网上看到的教程都需要安装Apache,但我已经安装了Nginx了,不想仅仅为了SVN再多装一个Apache。经过一番摸索,终于搞定了最小化的SVN服务,额外的软件什么也不需要安装。

下面是详细的过程:

1 通过apt-get安装subversion

复制代码代码如下:
apt-get install subversion

我原来误入歧途,以为会有个subversion-server之类的包,怎么找也找不到,后来才知道原来这个subversion同时包含了服务端和客户端。

2 找个目录当做SVN的根目录

我选择的是/data/svn,以下命令也都是跟着这个目录走的,请按照自己的选择自行修改

3 创建一个库

我的叫做akcms,执行完毕后会发现自动在/data/svn/akcms/目录中生成了一堆东西,其中有一个叫conf的文件夹

复制代码代码如下:
svnadmin create /data/svn/akcms

4 接下来修改/data/svn/akcms/conf/下的三个文件,依次是:svnserve.conf、passwd、authz。他们三个作用分别是:主配置文件、密码配置文件、权限配置文件

5 编辑文件vi /data/svn/akcms/conf/svnserve.conf
找到以下几项,按照如下的设置修改,去掉前面的注释,每一行的开头不能有空格

复制代码代码如下:
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz

6 编辑文件vi /data/svn/akcms/conf/passwd

复制代码代码如下:
[users]
mantou = 123456

格式很简单,用户名、密码,每行一个,默认是明文保存

7 编辑文件 vi /data/svn/akcms/conf/authz

复制代码代码如下:
[groups]
develop = mantou
[/]
@develop = rw

这个配置稍微复杂点:[groups]组是设置用户组的,比如:我设置的develop可以理解为开发人员组,等号的后面是组的成员,每个成员之间用逗号分隔。接下来的[/]为具体的某个地址设置权限,用@develop代表为develop组设置权限,rw代表又能读又能写。还有其他的复杂用法,不过我只懂最简单最常用的,所以其他的都跳过。

8 启动服务

复制代码代码如下:
svnserve -d -r /data/svn

参数-d表示以守护进程模式启动,-r表示代码仓库的根目录,如果启动成功了,通过ps aux | grep svnserve可以看到进程,至此一个最简单的SVN服务就搭建好了。

然后把这个命令放到rc.local中,让每次开机都启动SVN服务。

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

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

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

DDR爱好者之家 Design By 杰米
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
DDR爱好者之家 Design By 杰米