Hi 大家好,我是钟义林,今天我们来安装一个Subversion服务吧,Subversion server其实就我们日常说的SVN服务,Subversion(简称SVN,svn),一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控***务已从CVS转移到Subversion。svn服务器有2种运行方式:独立服务器和借助apache运行。下面我安装独立SVN
首先,清除一下yum的缓存吧,yum clean all
【一】安装 subversion
yum install subversion subversion-devel
然后选择y(yes)确认安装,当然你可以在yum install 的时候加个 -y 参数
执行 svnserve --version 命令,如果输入已下信息则说明安装成功
这里要注意一点,我这次安装svn版本为:1.6.11
===================================================================================
【二】下面我们来配置subversion
1)创建svn工作目录
mkdir -p /data/svn
2)创建版本库,可以同时指定存储模式为FSFS
svnadmin create --fs-type /data/svn/zhongyilin.com(这个库名,你可以自己起)
或者你可以使用
svnadmin create /date/svn/zhongyilin.org(通上库名,自己起)
注意,svn使用自带的FSFS数据库作为默认的数据存储模式,所以在创建版本库时,也可以不指定数据存储模式,根据需求,你可以自己创建库的数量。这里我就创建一个库
3)查看版本库中相关信息
ll /data/svn/zhongyilin.com/db/ | grep fsfs.conf
-rw-r--r--. 1 root root 1920 May 14 13:50 fsfs.conf
ll /data/svn/zhongyilin.com
total 24
drwxr-xr-x. 2 root root 4096 May 14 13:50 conf
drwxr-sr-x. 6 root root 4096 May 14 13:50 db
-r--r--r--. 1 root root 2 May 14 13:50 format
drwxr-xr-x. 2 root root 4096 May 14 13:50 hooks
drwxr-xr-x. 2 root root 4096 May 14 13:50 locks
-rw-r--r--. 1 root root 229 May 14 13:50 README.txt
4)导入所管理的项目相应的版本库
svn import /需要导入的路径 file:///data/svn/zhongyilin.com -m "import"
ps:如果您和我一样,是在一台新机器上安装的Subversion server的话,可以忽略这个(4)步骤
5)检查是否导入成功
svn list --verbose fille:///data/svn/zhongyilin.com
[[email protected] ~]# svn list --verbose file:///data/svn/zhongyilin.com/
0 ? May 14 13:50 ./
[[email protected] ~]# ll /data/svn/zhongyilin.com/
total 24
drwxr-xr-x. 2 root root 4096 May 14 13:50 conf
drwxr-sr-x. 6 root root 4096 May 14 14:09 db
-r--r--r--. 1 root root 2 May 14 13:50 format
drwxr-xr-x. 2 root root 4096 May 14 13:50 hooks
drwxr-xr-x. 2 root root 4096 May 14 13:50 locks
-rw-r--r--. 1 root root 229 May 14 13:50 README.txt
=======================================================================================
【三】配置svn的用户密码验证文件和用户权限验证文件
1.用户密码验证文件的配置
mkdir -p /etc/svn/conf
cp -rva /data/svn/zhongyilin.com/comf/* /etc/svn/conf
下面我们来修改/data/svn/zhongyilin.com/conf 和 /etc/svn/conf里的配置文件
首先修改zhongyilin.com/conf里的配置文件(其实先该那个都一样,其实也可以不cp出来,cp出来是为了方便多库的用户密码权限管理)
vim /data/svn/zhongyilin.com/svnserve.conf
修改:
去掉第12行和第13行的#号
去掉第20行的#号,并且指定路径为/etc/svn/conf下的paaswd
去掉第27行的#号,并且指定路径为/etc/svn/conf下的authz
去掉第32行的#号。
然后,我们再去/etc/svn/data/conf里进行文件配置
添加用户和密码
vim /etc/svn/conf/passwd
内容如下
### 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
我们可以删除上面两用户自己经行创建,格式是 用户名 = 密码
注意:如需添加多个用户,按照此格式依次添加即可(用户名 = 密码)。
例如:
[users]
zhongyilin = 19901123
liulisha = lisha198708
liuchao = liuchao1989
用户名 = 密码 【用户名 = 密码 的格式进行创建】
上面我只是举个例子,这里我就就创建一个用户为zyl 密码zyl的账号,来进行测试
用户权限验证文件配置
vim /etc/svn/conf/authz
内容如下
### This file is an example authorization file for svnserve.
### Its format is identical to that of mod_authz_svn authorization
### files.
### As shown below each section defines authorizations for the path and
### (optional) repository specified by the section name.
### The authorizations follow. An authorization line can refer to:
### - a single user,
### - a group of users defined in a special [groups] section,
### - an alias defined in a special [aliases] section,
### - all authenticated users, using the ‘$authenticated‘ token,
### - only anonymous users, using the ‘$anonymous‘ token,
### - anyone, using the ‘*‘ wildcard.
###
### A match can be inverted by prefixing the rule with ‘~‘. Rules can
### grant read (‘r‘) access, read-write (‘rw‘) access, or no access
### (‘‘).
[aliases]
# joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average
[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
注意:用户权限验证文件中出现的用户名必须在passwd文件中有定义过,对用户权限验证文件authz的修改会立即生效,如果需要在用户组中添加多个用户,格式如下:
用户组名 = user1,user2
依次类推...
这里说明一下,如果你感觉会很乱,你可以自己进行修改,只要留下[aliases] [groups] 和你自己库名 [aliases]下面可以删除光什么也不写。[groups] 你的自己设置组,组名你可以自己起,格式是
组名 = 用户名 我刚才创建的库是zhongyilin.com 所以我需要手动添加上这个库
[zhongyilin.com:/]在这个库下面添加组和权限,如下:
@svnadmin = rw
========================================================================================
如果你感觉我说的有点晕,我把我的配置给你黏贴出来
[aliases]
[groups]
svnadmin = zyl
[zhongyilin.com:/ ]
@svnadmin = rw
这就好了,如果你用户多的话,你就往passwd文件里加用户,然后在authz里吧用户加到组里,再给组配置权限
到这里基本算是安装配置完成,能不能用呢?我们来启动服务
启动和终止svn服务
/usr/bin/svnserve -d -r /data/svn
说明:
-d 表示以daemon方式运行(后台运行)
-r /data/svn 指定根目录是/data/svn
[[email protected] ~]# ps aux | grep svn
root 1664 0.0 0.0 152776 732 ? Ss 15:53 0:00 /usr/bin/svnserve -d -r /data/svn
root 1666 0.0 0.0 103240 852 pts/0 S+ 15:54 0:00 grep svn
pkill -9 svnserve
ps aux | grep svn
root 1669 0.0 0.0 103240 856 pts/0 S+ 15:54 0:00 grep svn
添加开机自动启动
echo "/usr/bin/svnserve -d -r /data/svn" >> /etc/rc.local
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
既然启动没问题,我们在windows上装一个小王八,来进行一下使用测试吧
首先你要去官网上、下载小王八。
我已经下载好了,下载我就往本文里写了,如果自己找不到,需要连接的,请留言
我再启动一台虚拟机来经行截图测试
在我虚拟机里我拖进去了svn的客户端程序,和客户端汉化程序,程序安装就是无脑的下一步,下一步
软件安装我就不演示了
因为我安装了汉化包,所有在设置里改为简体中文,下次就显示中文了。
选择svn检出,然后你会得到下面的画面,你需要吧svn的地址写上
友情提示,为了实验不出错误,记得刚才我们pkill -9 svnserve管了svn服务了吗?
再把他启动起来
/usr/bin/svnserve -d -r /data/svn
在版本库URL:下面里写上你的svn地址和库,格式如下
svn://IP/库名
然后点击确定
不好意思,先写到这里。明天过来给补上
CentOS6.X下安装配置独立SVN服务器|Subversion server