天天看点

文件管理的艺术之SVN从零搭建

  一直以来对SVN(subversion)的认识只停留在简单的概念上,至于到底是做什么用的、怎么用还是比较茫然,偶然的机会要为公司分部门搭建SVN,这才从头到尾的理清了一遍SVN这神奇的软件。在这里写下我的操作过程留作记录,同时也与大家一起分享。

  对于SVN的介绍大家可以参考网上,他的确是一款不错的文件版本管理软件,对于从事开发工作的人来说更是一款不错的利器,大家可以规律的操作同一个文件,而不用担心文件管理混乱的问题。本为主要讲述Linux系统下的SVN环境搭建,由于大家经常使用SVN客户端访问服务器端,所以我们要配合apache来使用。

一、准本工作

  以下是需要的软件包以及下载地址。

libxml2-devel(SVN编译解释环境)   本地光盘自带

openssl-devel(SSL加密所需环境)   本地光盘自带

expat(解析XML开发库)   本地光盘自带

二、安装部署

  准备好应有的软件后就可以进行安装部署了,下面对每一个安装进行说明。

1、apr

  arp(Apache Portable Runtime)大家可以理解为一个可移至的运行库,相当于给底层的SVN提供API接口,其实这个安装包在subversion-deps里面有,但是由于版本直接的依赖关系我们还是下载最新版本的进行另外安装,否则会出现意外的报错。

  tar zxf apr-1.4.5.tar.gz

cd apr-1.4.5

./configure   //默认的安装位置为 /usr/local/apr

make

make install

2、apr-util

  简单的几步就完成了apr的安装,apr-util也同样是所依赖的库文件,安装方法如下。

  tar zxf apr-util-1.3.12.tar.gz

cd apr-util-1.3.12

./configure –with-apr=/usr/local/apr   //指定apr的安装目录

3、httpd

  apache的编译安装相信大家已经非常常见了,这里不做过多的解释,只不过是需要加上一些编译参数,将我们安装的apr指定进去即可。

  tar zxf httpd-2.2.19.tar.gz

cd httpd-2.2.19

./configure –prefix=/usr/local/apache2 –with-apr=/usr/local/apr/bin/apr-1-config –with-apr-util=/usr/local/apr/bin/apu-1-config –enable-modules=so –enable-dav –enable-maintainer-mode –enable-rewrite

4、libxml2-devel

  从网上查找资料后发现这个开发包是SVN使用过程中的一种汇编语言,如果不安装的话SVN编译是不通过的,大家可以从本地的系统光盘中使用rpm包进行安装,如果有依赖关系可以使用yum的方式安装。当然前提是本地没有这个软件包,可以使用rpm -qa查看一下。

  yum install libxml2-devel

5、openssl-devel

  这个相信大家一看就明白了,一般在带有ssl参数编译的源码包中,openssl是不可缺少的环境,首先用rpm-qa查看软件是否安装,这里推荐大家使用yum方式安装openssl-devel,因为有多个包之间有依赖关系。

  yum install openssl-devel

6、expat

  这个软件包也是和XML环境有关系,非常有意思,如果不安装的话在subversion最后的make install过程中会报错,同样大家可以从本地的光盘中找到该软件包。

  yum install expat

7、subversion && subversion-deps

  忙碌了半天终于准备好SVN的安装环境了,这里为什么要把两个安装包放在一起呢,因为deps是subversion所需的依赖环境,安装过程也十分简单。

  tar zxf subversion-1.6.17.tar.gz

tar zxf subversion-deps-1.6.17.tar.gz

cd cd subversion-1.6.17

rm -fr apr*   //因为我们在前面已经另外编译过apr,所以这里删除掉

./configure –prefix=/usr/local/svn –with-apxs=/usr/local/apache2/bin/apxs –with-apr=/usr/local/apr/bin/apr-1-config –with-apr-util=/usr/local/apr/bin/apu-1-config –with-ssl –enable-maintainer-mode

三、SVN简单管理

  按照上面的步骤如果没有看到error报错的话说明安装已经成功了,下面主要介绍一下SVN简单的使用与管理,更加详细的说明请大家参考其他文章,因为对于SVN的使用有很多介绍。

1、创建版本仓库

  mkdir -p /svn/object/test   //这里我要把test目录作为SVN的版本库

cd /usr/local/svn/bin/

./svnadmin create /svn/object/test   //创建版本仓库

2、修改apache配置文件,在httpd.conf最后加入如下语句,并且将User/Group那里改成apache,如果没有这个用户请手动创建。

  <Location /svn>   //指定SVN的访问路径

DAV svn   //指定哪一个模块是相应处理SVN请求

SVNListParentPath  on   //列出所有版本库

SVNParentPath  /svn/object/   //SVN根的绝对路径

AuthType  Basic   //采用基本认证,使用用户名/密码

AuthName  “Subversion repositories”   //弹出认证信息对话框的描述内容

AuthUserFile  /svn/object/passwd   //指定认证的密码文件

AuthzSVNAccessFile  /svn/object/authz   //指定SVN访问的规则文件

Require  valid-user   //指定只有输入正确的用户密码才可以访问版本库

</Location>

3、配置passwd文件,在经过上面的配置后使用浏览器访问地址 http://服务器IP/svn/test 看到有认证信息说明配置是成功的,下面就要为SVN指定哪些用户可以访问我们的内容,这里用户名我们假定为admin1与admin2。

  cd /usr/local/apache2/bin

./htpasswd -c /svn/object/passwd admin1   //这里-c只在第一次创建使用

./htpasswd /svn/object/passwd admin2   //输入密码即可完成用户密码创建

4、只有passwd还不够,需要配合authz文件的使用我们才可以正常访问我们的SVN版本库,authz文件需要我们手动创建,进入/svn/object目录使用vi authz命令创建规则文件如下。

  [groups]   //设置用户群组

mygroups=admin1,admin2

  [test:/]   //指定test版本库的访问权限

@mygroups=rw   //mygroups里的成员对test库有读写的权限

5、启动SVN,使用如下命令启动SVN,我们的SVN版本库就可以正常工作了。

  /usr/local/svn/bin/svnserve -d -r /svn/object/test   //-d指定后台运行

可以将这句话加入到rc.local文件中让其开机自动启动

四、SVN客户端测试

  在进行了一系列的设置后,SVN的搭建工作终于接近尾声,接下来就是测试一下我们的SVN是否可用。

1、使用浏览器访问 http://服务器IP/svn/test 输入我们先前设置的用户名与密码后如果能开到“test – Revision 0: /”说明工作正常。

2、推荐大家使用SVN客户端TortoiseSVN进行测试,使用客户端可以完成SVN目录映射到本地,以及文件创建、更改、上传的操作,这里不做进一步演示,至此SVN环境搭建结束。

写在最后

  看过很多篇文章后才总结出自己的思路,这里也希望大家能够参考更多文章对SVN这个神奇的软件能够有自己的一些看法,以上只是本人对subversion粗浅的认识与整理,最后也希望能够与大家一起讨论其中的问题与不足。

     本文转自阿布ve 51CTO博客,原文链接:http://blog.51cto.com/abuve/695938,如需转载请自行联系原作者