当前位置: > Linux服务器 > SVN >

Linux下安装配置SVN

时间:2015-02-08 00:30来源:linux.it.net.cn 作者:IT

(一).准备的源码包
1.subversion-1.6.4.tar.gz下载路径:subversion.tigris.org
2.httpd-2.2.9.tar.gz下载地址apache官网,很容易找的
3.subversion-deps-1.6.4.tar.gz,它为subversion安装时所依赖的,能过解压缩subversion-1.6.4.tar.gz文件,查看里面的INSTALL
文件,我们可以在dependency中看到,安装subversion需要libapr,libapr-util,sqlite,libz,libserf(option),其中'apr',
'apr-util', 'serf', 'zlib',已经包含在subversion-deps-1.6.4.tar.gz

(二).安装apache

1.首先先安装apache,解压httpd-2.2.9.tar.gz
tar -xzvf httpd-2.2.9.tar.gz
cd httpd-2.2.9

2.编译
./configure --enable-module=so --enable-dav --enable-dav-fs --enable-so --prefix=/usr/local/apache2 
make
make install

3.测试
$ /usr/local/apache2/bin/apachectl start
检查/usr/local/apache2/logs/error_log 是否有错
打开浏览器http://localhost/如果有测试页"It works!"出现则证明已经安装成功

(二).安装subversion
1.首先为安全起见,先执行以下语句
rm -f /usr/local/lib/libsvn*
rm -f /usr/local/lib/libapr*
rm -f /usr/local/lib/libexpat*
rm -f /usr/local/lib/libneon*

#检查依赖包是否完整
$ sh ./autogen.sh

2.安装subversion-1.6.4.tar.gz
tar -xzvf subversion-1.6.4.tar.gz 
tar -xzvf subversion-deps-1.6.4.tar.gz
cd subversion-1.6.4
./configure --prefix=/usr/local/subversion 
   --with-apxs=/usr/local/apache2/bin/apxs 
   --with-apr=/usr/local/apache2 
   --with-apr-util=/usr/local/apache2 
   --with-ssl --with-zlib 
   --enable-maintainer-mode
注.subversion apache 服务模块
#subversion会共享库在/usr/local/lib/. mod_dav_svn.so必须在/usr/local/apache2/modules/
./configure --with-apxs=/usr/local/apache2/bin/apxs
   make 
   make install

3.创建一个新linux用户svnroot
useradd svnroot

4.创建库文件所在的目录 (svnroot用户进行下面的操作)
   mkdir /home/svnroot/repository

5.创建仓库"test"
   cd /usr/local/subversion/bin
   ./svnadmin create /home/svnroot/repository/test
   cd /home/svnroot/repository/test
   ll 这时会多一些文件出来

6.在apache中配置subversion
修改httpd.conf,添加以下subversion模块
LoadModule dav_svn_module     
LoadModule modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

在文件末添加
<Location /svn> 
   DAV svn 
   #svn父目录
   SVNParentPath /home/svnroot/repository/ 
   #权限配置文件 
   AuthzSVNAccessFile /home/svnroot/repository/authz.conf 
   #连接类型设置
   AuthType Basic 
    #连接框提示
   AuthName "Subversion.zoneyump" 
   #用户配置文件 
   AuthUserFile /home/svnroot/repository/authfile 
   #采用何种认证 
   Require valid-user 
   </Location>
   //其中authfile是通过"htpasswd [–c] /home/svnroot/repository/authfile username password"来创建的 
   //"Require valid-user"告诉apache在authfile中所有的用户都可以访问。如果没有它,
   //则只能第一个用户可以访问新建库 
   //顺便把你的端口号也改一下,要不然可能&你以前的Apache的端口冲突

7.重启apache # ./usr/local/apache2/bin/apachectl restart 
//打开浏览器访问http://localhost/svn/test/,如果有东西显示就说明成功。

8.权限管理
1)增加用户
# htpasswd [-c] /home/svnroot/repository/authfile davide
//第一次设置用户时使用-c表示新建一个用户文件。回车后输入用户密码,完成对用户的增加
# htpasswd authfile 用户名(加入新的用户)

2)权限分配
# vi /home/svnroot/repository/authz.conf 
   [test:/] //这表示,仓库test的根目录下的访问权限 
   davide = rw //test仓库davide用户具有读和写权限 
   [test2:/] //test2仓库根目录下的访问权限 
   ydw = r //ydw用户在test2仓库根目录下只有读权限 
   [/] //这个表示在所有仓库的根目录下 
   * = r //这个表示对所有的用户都具有读权限 
   #[groups] //这个表示群组设置 
   #svn1-developers = davide, ydw //这个表示某群组里的成员 
   #svn2-developers = ydw 
   #[svn1:/] 
   #@svn1-developers = rw //如果在前面加上@符号,则表示这是个群组权限设置

(责任编辑:IT)
------分隔线----------------------------