这里我只记录我安装配置subverions管理系统的相关步骤和方法,subversion更多subversion相关的资料请使用搜索引擎去获得。
subversion通常有两种工作方式,一种作为单独的后台服务程序运行使用专有的SVN协议通讯,另一种则是作为Apache的模块提供服务使用HTTP协议通讯。两种模式各有优缺点,作为单独服务程序配置比较简单,作为APACHE的模块运行比较稳定而且通过web浏览管理比较方便。
安装需要的软件
- snv源码包 http://subversion.tigris.org/downloads/subversion-1.3.2.tar.gz
- BerkeleyDB源码包 http://download.oracle.com/berkeley-db/db-4.3.29.tar.gz
- apache2源码包 http://apache.mirror.phpchina.com/httpd/httpd-2.0.61.tar.gz
BerkeleyDB 的版本应选用db-4.4以下的,arp-util 对新版本的不支持
安装配置
下载并解压软件包
cd /tmp
wget http://subversion.tigris.org/downloads/subversion-1.3.2.tar.gz
tar xvzf subversion-1.3.2.tar.gz
wget http://download.oracle.com/berkeley-db/db-4.3.29.tar.gz
tar xvzf db-4.3.29.tar.gz
wget http://apache.mirror.phpchina.com/httpd/httpd-2.0.61.tar.gz
tar xvzf httpd-2.0.61.tar.gz |
安装编译BerkeleyDB
cd db-4.3.29
cd build_unix/
../dist/configure --enable-compat185
make
make install
|
subversion可以使用文件系统和BerkeleyDB两种方式存储版本库,推荐使用BerkeleyDB存储版本库
编译安装APACHE2.0
cd /tmp/httpd-2.0.54
./configure --enable-dav --enable-so --enable-maintainer-mode --with-dbm=db4 --with-berkeley-db=/usr/local/BerkeleyDB-4.3.29
make
make install
|
编译安装subversion
./configure --with-apxs=/usr/local/apache2/bin/apxs --with-apr=../httpd-2.0.61/srclib/apr --with-apr-util=../httpd-2.0.61/srclib/ apr-util --with-berkeley-db=/usr/loacl/BerkeleyDB.4.3
make
make install
|
配置SVN
subersion安装成功后会自动修改 $APACHE_HOME/conf/httpd.conf 加入以下两行用于加载svn的功能模块
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
|
创建版本仓库
你可以选择以文件系统或者BerkeleyDB作为版本库的存储格式 |
使用文件系统
svnadmin create --fs-type fsfs /home/svnroot/repos
|
使用BerkeleyDB
svnadmin create --fs-type bdb /home/svnroot/repos
|
为了可以通过apache管理版本库把版本库改为nobody用户1)
chown -R nobody:nobody /home/svnroot/repos
|
编辑http.conf加入版本仓库的映射
<Location /svn/repos >
DAV svn
SVNPath /home/svnroot/repos
</Location>
|
到此重新启动apache后,你就可以通过 http://localhost/svn/repos 来访问你的版本库了
加入权限控制
如果你不想版本库对外开放可以对版本库加入简单的认证安装如下方式修改apache版本库的映射目录配置
<Location /svn/repos >
DAV svn
SVNPath /home/svnroot/repos
AuthType Basic
AuthName "Subversion repository"
#通过htpasswd工具生成的帐户列表路径
AuthUserFile /home/svnroot/repos/conf/httpuser
Require valid-user
</Location>
|
在指定的用户路径生成帐号列表文件
$APACHE_HOME/bin/htpasswd -cb /home/svnroot/repos/conf/httpuser your_name your_passwd
|
1) 通常apache是以nobody用户身份运行
|