Mac环境下Linux下SVN server搭建

近日由于项目需要在Linux server上搭建一个SVN的server环境,于是在网上寻找了一些资料,在参考各位网友文章的基础上,成功搭建了svn服务器。期间也碰到一些问题,特在此记录一下。


【1】SSH登录到云服务器

Mac下,SSH登录到云服务器比较简单,命令如下:ssh [email protected] -p 2xx3;

其中,“2xx3”为服务器对应的SSH端口号


【2】下载SVN server包

使用yum安装subversion

[root@singledb ~]# yum install -y subversion


安装完成之后,进行验证:

[root@singledb ~]# svnserve --version


【问题】

安装完成之后,出现warning:

svn: warning: cannot set LC_CTYPE locale
svn
: warning: environment variable LANG is en_US.UTF-8
svn
: warning: please check that your locale name is correct

【解决方式】

sudo vi /etc/profile
加入一行:
export LC_ALL=C
source /etc/profile

【3】创建SVN仓库

当前目录为root;直接创建SVN文件夹;

[root@singledb ~]# mkdir ./svn

[root@singledb ~]# svnadmin create ./svn/devsvn  --"devsvn"为版本库名称

创建完成之后,可以进入devsvn,用ls查看,是否创建了对应的文件夹,里面应该有"README.txt  conf  db  format  hooks  locks",这几个文件;


【3.1】svn配置

SVN的配置,需要配置以下几个文件:

1svnserve.conf  svn服务配置文件下。

2passwd 用户名口令文件。

3authz 权限配置文件。

********************************************************

svnserve.conf 文件, 该文件配置项分为以下5项:

       anon-access: 控制非鉴权用户访问版本库的权限。

       auth-access:  控制鉴权用户访问版本库的权限。

       password-db: 指定用户名口令文件名。

       authz-db:指定权限配置文件名,通过该文件可以实现以路径为基础的访问控制。

       realm:指定版本库的认证域,即在登录时提示的认证域名称。若两个版本库的认证域相同,建议使用相同的用户名口令数据文件

修改“svnserve.conf ”文件如下:

[root@singledb ~]# cd ./svn/devsvn/conf

[root@singledb ~]# vi svnserve.conf

shit + i ,进入编辑模式;(原先,下面几行应该是注释掉了,打开,并进行修改)

修改内容如下:

anon-access = none
auth-access = write
password-db = /root/svn/devsvn/conf/passwd
authz-db = /root/svn/devsvn/conf/authz

修改完成之后,按下“esc”退出编辑模式;

:wq + 回车 保存好文件,退回到命令行模式;


********************************************************
修改passwd文件

[root@singledb ~]#vi passwd

同样添加用户和密码如下:

[users]

# harry = harryssecret

dev1 = dev1pwd

dev2 = dev2pwd

。。。这里根据自己的需要,随意添加账户;

同样保存退出;

********************************************************
修改authz文件, 为各个账户设立分组,分别给与不同的权限;

[root@singledb ~]# vi authz

[groups]

admin = dev1, dev2

devteam1 = dev1, dev2, dev3

devteam2 = dev4, dev5, dev6

docs = doc1, doc2, doc3 

training = train1

根据需求,分别给与管理员,开发人员,文档,培训等不同职责的人,进行账户分类;

然后为所有库指定默认访问规则

[/]  --对应我测试里的:./svn 目录

* = r

@admin = rw


允许开发人员可以完全访问他们的项目版本库

[proj1:/]

@devteam1 = rw

文档编写人员对所有的docs目录有写权限

[/trunk/doc]

@docs = rw


在我们项目中,root目录下面的svn,只有devsvn一个文件夹;只需要跟它设置权限即可;

[groups]

admin = dev1

dev1=dev1

doc=doc1

[devsvn:/]

@admin = rw

@dev1 = rw

@doc = rw


【3.2】启动和停止SVN服务

1)启动SVN服务:

[root@singledb conf]# svnserve -d -r /root/svn

       -d表示后台运行

       -r 指定根目录是 /root/svn

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

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

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

2)停止SVN服务:

ps -aux |grep svn

kill -9  4592



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章