一、subversion最新版本已经到1.4.4,我安装的还是老版本,新版本也可以,BerkeleyDB和Apache的版本要与subversion要求的一致,安装所需文件及下载地址:
1) Subversion 1.2.3
http://subversion.tigris.org/downloads/subversion-1.2.3.tar.gz
2)Berkeley DB 4.4.20
http://downloads.sleepycat.com/db-4.4.20.tar.gz3)Apache 2.0.54
http://apache.justdn.org/httpd/httpd-2.0.54.tar.gz
二、以root用户登陆系统。
安装Apache
#tar -zxvf httpd-2.0.54.tar.gz
#cd httpd-2.0.54
#./configure --enable-dav --enable-so --enable-maintainer-mode
#make
#make install
安装Berkeley DB
#tar -zxvf db-4.4.20.NC.tar.gz
#cd db-4.4.20.NC/build_unix/
#../dist/configure --prefix=/usr/local/bdb
#make
#make install
安装Subversion
#tar -zxvf subversion-1.2.3.tar.gz
#cd subversion-1.2.3
#./configure --with-berkeley-db=/usr/local/bdb --with-apxs=/usr/local/apache2/bin/apxs
#make
#make install
/* 你可以用以下命令检验subversion是否安装成功 */
#svnadmin --version
三、新建一用户组svn,并建立一用户svnroot,用于管理svn的运行和维护
groupadd svn
useradd -G svn -m "the svn mananger" svnroot
passwd svnroot #设置svn密码
四、使用svnroot登录,执行下列操作
# mkdir /home/svnroot/repository
//创建仓库test
svnadmin create /home/svnroot/repository/test
//导入项目到仓库中
svn import /home/yourproject file:///home/svnroot/repository/test –m "initial import"
//改变权限,仅限svnroot拥有读、写、执行权利
chmod 700 /home/svnroot/repository
五、root用户登录,设置Apache
//编辑httpd.conf
# vi /usr/local/apache2/conf/httpd.conf
找到下面两行,如果没有,则添加:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
接着上面再添加下面这段配置:
<Location /svn/>
DAV svn
SVNParentPath /home/svnroot/repository/
AuthzSVNAccessFile /home/svnroot/repository/authz.conf
AuthType Basic
AuthName "Subversion.svn"
AuthUserFile /home/svnroot/repository/authfile
Require valid-user
</Location>
这段信息设置了/svn/目录需要认证才能访问,用户信息放在authfile,授权信息在authz.conf文件里。
六、权限管理,使用svnroot登录
1)增加用户,通过下列命令第一次增加时建立authfile文件,比如添加了一个用户dennis
htpasswd -c /home/svnroot/repository/authfile dennis
会提示你输入密码,以后再添加就不用-c选项了
2)权限分配,建立并编辑authz.conf
# vi /home/svnroot/repository/authz.conf
[groups] #这个表示群组设置
admin=svnroot #svnroot是admin组
[test:/] #这表示,仓库test的根目录下的访问权限
dennis=rw #test仓库dennis用户具有读和写权限
[test2:/] #假设有test2仓库,它的访问权限
dennis=r #test2仓库dennis有读权限
[/] #这个表示在所有仓库的根目录下
* = r #这个表示对所有的用户都具有读权限
@admin=rw #admin组有读和写权限,比如svnroot
设置完成后,
重启apache
/usr/local/apache2/bin/apachectl restart
启动svn服务
#svnserve -d
通过浏览器访问http://localhost/svn/test/,输入用户名密码,一切OK!
我只在我的windows机器上安装了subversion管理我的文档,这次在redhat9上的安装还算顺利,参考了下列文章:
《Linux 上安装 Subversion》《在Redhat9 Linux下安装,配置Subversion 1.3.1》