织梦CMS - 轻松建站从此开始!

罗索

Linux平台下Subversion的安装与配置(一)

jackyhwei 发布于 2010-03-27 14:11 点击:次 
本文将介绍如何在Linux环境下(以Redhat9为例)通过Subversion 来构建小组开发过程中最为重要的版本控制环境,包括Subversion 环境的安装配置,以及客户端的配置和使用。
TAG:

本文将介绍如何在Linux环境下(以Redhat9为例)通过Subversion 来构建小组开发过程中最为重要的版本控制环境,包括Subversion 环境的安装配置,以及客户端的配置和使用。(某些操作,如make install需要root权限,简便起见,在没有特殊说明的情况下,下面的工作均使用root账户完成。)

 
 
1. 安装Apache HTTP Server
 
httpdweb服务器,httpdsubversion 配合,可用来通过web访问subversion,得到httpd-2.2.4.tar.bz2文件后,通过以下命令解压:
tar -jxvf httpd-2.2.4.tar.bz2
进入解压后的目录后,执行
./configure --enable-dav --enable-so --enable-nonportable-atomics 
其中,--enable-dav允许Apache提供DAV协议支持;--enable-so允许运行时加载DSO模块--enable-nonportable-atomics可以在486以上的CPU上启用更加高效的基于互斥执行的原子操作。前两个参数是必须要加的,你还可以根据您的需要添加其他的参数。httpd默认安装目录为/usr/local/apache2,可通过--prefix参数指定。
另外,网络上有些howto上有在此时使用--enable-maintainer-mode参数,建议在正式的使用环境中不要使用,该参数使用所有警告和调试符号编译源代码,会影响性能。
完成后使用make命令编译httpd,执行make install则完成对httpd的安装,默认路径为/usr/local/apache2
 
安装完成后,进入 /usr/local/apache2/bin目录,使用
./apachectl start启动httpd
在浏览器中打开http://localhost/,如果能正常显示“It Works!”,则证明已经安装成功。
 
 
2.安装Subversion
 
subversion的安装稍有技巧,需要下载subversion-1.4.3.tar.bz2 subversion-deps-1.4.3.tar.bz2两个压缩包,并且解压至同一目录下,这样subversion会自动地编译、安装依赖库;若习惯性的先安装依赖库,后安装subversion,则依赖库的编译需要手动进行。
进入解压后的目录,执行
./configure --with-apxs=/usr/local/apache2/bin/apxs --with-apr=/usr/local/apache2 --with-apr-util=/usr/local/apache2
其中,--with-apxs 用于生成apache httpdmod_dav_svnmod_authz_svn模块;--with-apr --with-apr-util=参数指向 Apache 的安装根目录,而不是使用缺省的 SVN 安装包中自带的 apr ,否则如果你安装的 Apache 版本不同有可能导致 APR 库不匹配,出现类似:
Can't set position pointer in file '/svn/test/db/revs/1': Invalid argument 的错误。(同样可以通过 --prefix参数指定安装目录)
Configure完成后,执行makemake install命令完成安装。
Subversion编译完成后会自动在 /usr/local/apache2/conf/httpd.conf 添加
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
这两行,并且将生成的mod安装到apache2modules目录。
 
3.创建repository
 
假设我们把版本库建立在/home目录下,那么执行mkdir repository新建版本库文件夹,
通过svnadmin create repository/test命令可创建名为test的版本库。
若创建成功,则subversion的安装便已成功完成。
 
这里,我使用了fsfs数据库格式,这是subversion目前的默认数据存储形式,如果想要使用Berkeley DB作为数据库格式,则需要在安装subversion之前安装Berkeley DB,并在编译subversion时使用—with-berkeley-db参数,然后可以使用
svnadmin create --fs-type bdbrepository/test 命令来创建版本库。(关于两者的对比可参考Version Control with Subversion(中文书名为《使用subversion进行版本控制》)第5章)。
 
 
4.导入源代码
 
现在,我们已经有了一个可用的版本库了,接下来我们使用
mkdir –p import/{trunk,branches,tags}命令在/home/svnroot目录下建立一个名为import的新文件夹,包含trunkbranchestags 三个子目录,目录结构如下图所示。
至于为什么这么做,大家可以参考Version Control with Subversion4章。
 
Some dir
        |---import
               |---trunk
               |---branches
               |---tags
 
下面这条语句将把路径/home/svnroot/import下的目录和文件导入到你创建的Subversion 仓库中去,
提交后的修订版为1
svn import /home/svnroot/import file:///home/svnroot/repository/test m "Init repository"
这里/home/svnroot/import可以使用相对路径,但file:///home/svnroot/repository/test必须以绝对路径表示。
 
 
5.版本库所有者和权限修改
 
目前,repository目录依然为root用户所有,默认权限为755,为了让用户能够通过apache正常读写该目录,我们需要先将该目录以及该目录的上层目录svnroot的所有权交给apache httpd(安装apache httpd的时候,会自动增加apache用户组和apache用户),然后为了安全起见,将repositorysvnroot目录的权限都改为700apache外其他用户就没有了该目录的任何权限了。
 
首先,打开apache配置文件/usr/local/apache2/conf/httpd.conf,确保将UserGroup 设置为
User apache
Group apache
 
然后,进入/home目录,修改svn仓库的所有者
chown -R apache:apache svnroot
 
最后,修改该目录权限(不要在这里使用-R参数,apache用户需要对test下的文件有读写权限)
chmod 700 svnroot
chmod 700 svnroot/repository
 
 
至此,我们已经为subversion的使用做好了准备工作,有了一个可由apache进行读写的版本库,只要对apache稍加设置,我们便可以通过web来访问版本库了。结合httpd使用subversion时的身份认证和授权设置问题是需要特别注意的,我将在第二篇中详细说明。
 
Reference
1.       Version Control with Subversion 1.4(r2730)    Ben Collins-Sussman, Brian W. Fitzpatrick, and C. Michael Pilato
2.       Apache HTTP Server Version 2.2文档中文版   Apache Software Foundation 金步国译
3.       Redhat9 Linux下安装,配置Subversion 1.3.1      Wooin http://blog.csdn.net/wooin/archive/2006/07/11/903974.aspx
(秩名)
本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,同学习共成长。转载请注明:文章转载自:罗索实验室 [http://www.rosoo.net/a/201003/8879.html]
本文出处:网络博客 作者:秩名
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
将本文分享到微信
织梦二维码生成器
推荐内容