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 [iyunv@Nutcracker ~]# svn list --verbose file:///data/svn/zhongyilin.com/ 0 ? May 14 13:50 ./ [iyunv@Nutcracker ~]# 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行的#号。 友情提示:为了避免出现svnserve.conf:12: Option expected类似这个报错 你需要在去掉#号的时候再按一个退格键,一定要让12行13行20行27行还有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 同时,为了避免出现authorization failed 的现象,务必在authz文件的最低下添加/(根权限) [/] @svnadmin = rw ======================================================================================== 如果你感觉我说的有点晕,我把我的配置给您写出来 [aliases]
[groups] svnadmin = zyl
[zhongyilin.com:/ ]
@svnadmin = rw
[/] @svnadmin = rw
这就好了,如果你用户多的话,你就往passwd文件里加用户,然后在authz里吧用户加到组里,再给组配置权限
到这里基本算是安装配置完成,能不能用呢?我们来启动服务
启动和终止svn服务 /usr/bin/svnserve -d -r /data/svn 说明: -d 表示以daemon方式运行(后台运行) -r /data/svn 指定根目录是/data/svn [iyunv@Nutcracker ~]# 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/库名 然后点击确定,你就会看见下面的图,记得我刚才创建的用户吗?
对,zyl,密码zyl,点击确定后,你会看见svn检出成功
点击确定,svn服务就可以用了
===================================================================================
其实到上面已经算完成了,下面我来教大家最简单的使用或者说测试方法吧。 一个简单测测试 双击进入zhongyilin.com这个文件夹后,新建一个txt,邮件然后提交
把刚才上传的新建文档.txt删除掉,然后右击,svn更新,删除的新建文件文本文档就回来了
当然,你可以在文本里写东西,该东西等等,我就不介绍了,相信不少人知道滴怎么使用。
一个Perfect滴SVN SERVER就部署完成了。现在已经可以使用了,当然,如果你生生产环境的话,根据自己需求来进行更细一步的配置,如果只是使用,就在passwd文件里添加用户,在authz文件里设置组和权限,最后感谢大家能看完我这啰嗦的文章。
|