树莓派上搭建SVN代码托管服务

一、搭建过程

1.卸载svn 

利用以下命令查看自己的系统是否已经安装了svn:

svn


上面显示为未安装,如果显示说明已安装,可以使用以下命令进行卸载:

sudo apt-get remove --purge subversion

(–purge 选项表示彻底删除改软件和相关文件)

2.安装svn 

sudo apt-get install subversion

上图显示安装成功。 

可以验证一下,通过如下命令:

svn help //--svn帮助

svn --version //--svn版本

svnserve --version //--svn server版本

3.创建SVN版本库

(1)创建项目目录和svn仓库:

sudo mkdir /home/svn

sudo mkdir /home/svn/repository

sudo chmod -R 777 /home/svn/repository

sudo svnadmin create /home/svn/repository

创建svn目录,再创建repository版本库,repository为版本库的名字,可以更改为自己的名字

执行命令后,会在repository下生成以下文件:


对db进行权限设置:

sudo chmod -R 777 db //如果不执行上述命令,会报权限错误

错误如下


这是因为我们用的都是sudo权限做的操作,默认只有root用户对文件夹才有写权限,因为root的umask是0022,别的用户没有写权限。

(2)设置访问权限: 

首先 svnserve.conf里边配置了版本库的权限,需要把下边5行的注释打开,一定注意,去掉#号的同时把空格去掉,否则svn服务不能正常运行。

sudo vi /home/svn/repository/conf/svnserve.conf
anon-access = none   
#控制非鉴权用户访问版本库的权限。取值范围为"write"、"read"和"none"。即"write"为可读可写,"read"为只读,"none"表示无访问权限。缺省值:read
auth-access = write 
#控制鉴权用户访问版本库的权限。取值范围为"write"、"read"和"none"。即"write"为可读可写,"read"为只读,"none"表示无访问权限。缺省值:write
password-db = passwd 
#指定账户密码配置文件,当前文件夹下的passwd文件
authz-db = authz
#权限配置文件,当前文件夹下的authz文件
realm = first    
#版本库的认证域,即在登录时提示的认证域名称。若两个版本库的 认证域相同,建议使用相同的用户名口令数据文件。缺省值:一个UUID(Universal Unique IDentifier,全局唯一标示)

(3)配置passwd

如下代码,配置了用户名为test的用户,并为其创建了密码test123.如需要配置多用户就多写几个吧,记得换行

### This file is an example password file for svnserve.
### Its format is similar to that of svnserve.conf. As shown in the
### example below it contains one section labelled [users].
### The name and password for each user follow, one account per line.


[users]
# harry = harryssecret
# sally = sallyssecret
test=test123

(4)配置authz权

下边的代码为test用户创建了读和写的权限。

[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe


# [/foo/bar]
# harry = rw
# &joe = r
# * =


# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r
[/]
test=rw

如果用户较多,需要分角色划分权限参考下边代码,这段代码,为test创建了admin的角色,为ttt用户创建了user的角色,最后使用@符号为角色创建权限,admin角色读写权限,user角色读权限。

[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe


# [/foo/bar]
# harry = rw
# &joe = r
# * =
admin=test
user=ttt
# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r
[/]
@admin=rw
@user=r

ok,配置已经完成,启动svn服务器,执行如下命令:

svnserve -d -r /usr/svn

启动服务器,-d表示守护线程后台运行,-r表示指定目录。注意:不要写成svnserve -d -r /usr/svn/repository。否则虽然服务可正常启动,但是客户端用的时候可能会产生问题

查看是否启动成功:

ps -ef | grep svnserve

如果结果为两个线程在运行,一般是成功了

四:访问SVN服务器

可以通过TortoiseSVN客户端访问SVN服务器: 
在本地新建一个文件夹,进入文件夹,使用TortoeseSVN访问之前创建的SVN服务器仓库。 
这里写图片描述

进入svn仓库后,可以试着提交一个文件夹: 
这里写图片描述
这里写图片描述

点击确定或者OK后会提示你输入svn的用户名和密码: 
这里写图片描述

这里写图片描述

到此就完成了。。。。


猜你喜欢

转载自blog.csdn.net/feixuedongji/article/details/79722203