当前位置: 代码迷 >> CVS/SVN >> 转载Linux上安装svn
  详细解决方案

转载Linux上安装svn

热度:2682   发布时间:2013-02-26 00:00:00.0
转载Linux下安装svn
http://www.cublog.cn/u3/103360/showart_2043375

linux svn 配置
2009-08-19 11:02
-------------vi 乱码-----------------------

vi .bashrc
加入下面
export LANG=en_US

----------------安装软件-----------------------------

1.安装apr
cd apr
./configure --prefix=/usr/local/apr
make
make install

2.安装apr-util
cd apr-util
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/
make
make install
3.安装zlib
cd zlib
./configure
make
make install
4.安装httpd
tar zxvf httpd-2.2.11.tar.gz
cd httpd-2.2.11
./configure --prefix=/usr/local/apache2 --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr-util/bin/apu-1-config --enable-so --enable-dav --enable-maintainer-mode --enable-rewrite
make
make install
5.解压subversion
tar zxvf subversion-1.6.1.tar.gz
tar zxvf subversion-deps-1.6.1.tar.gz (这个解压后会自动放到前面一个解压的目录里的)

安装serf
cd subversion-1.6.1/serf
./configure --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/
make
make install
安装 neon
cd subversion-1.6.1/neon
./configure --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/
make
make install
安装 sqlite
cd subversion-1.6.1/sqlite-amalgamation
./configure --prefix=/usr/local/sqlite3
make
make install
6.安装subversion
cd subversion-1.6.1
./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-util/bin/apu-1-config --with-sqlite=/usr/local/sqlite3 --with-ssl --with-zlib=/usr/lib --enable-maintainer-mode
make
make install

----------------------配置svn----------------------------------------------

1.vi /usr/local/apache2/conf/httpd.conf 查看是否有如下2行,有就对了
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

chmod -R 755 /code/ddd

2.建立版本库
mkdir /code (代码的根目录,根据自己情况)
/usr/local/svn/bin/svnadmin create /code/test (建一个test项目)
ls /code/test 里面多了些文件就对了

----------------------配置apache-----------------------------------------

vi /usr/local/apache/conf/httpd.conf
在末尾加上如下内容:
<Location /svn>
   DAV svn
   SVNParentPath /code #svn父目录
   AuthzSVNAccessFile /code/authz.conf #权限配置文件
   AuthType Basic    #连接类型设置
   AuthName "Subversion" #连接框提示
   AuthUserFile /code/authfile #用户配置文件
   Require valid-user #采用何种认证
</Location>

例子:

<Location /svn>
   DAV svn
   SVNParentPath /home/zhz/svnroot
   AuthzSVNAccessFile /home/zhz/svnroot/apa_authz.conf
   AuthType Basic
   AuthName "Subversion"
   AuthUserFile /home/zhz/svnroot/apa_pass
   Require valid-user
</Location>

-------------------------------------------------------

启动apache

cd /usr/local/apache2/bin
./apachectl start
------创建用户配置文件-----------------------------------------------

htpasswd -c /code/authfile user1        //必须要这样创建.
回车输入密码 (-c是第一次要创建文件)
htpasswd /code/authfile user2
回车输入密码

--------------------配置svn访问控制------------------------------------

使用 SVNParentPath 代替 SVNPath 来指定多个版本库的父目录时,其中所有的版本库都将按照这个策略文件配置。例如上例中 tony 将对所有版本库里的 /tags 目录具有读写权限。如果要对具体每个版本库配置,用如下的语法:

[groups]
project1_committers = paulex richard
project2_committers = jimmy michel spark sean \
           steven tony robert
[repos1:/]
* = r
@ project1_committer = rw
[repos2:/]
* = r
@ project2_committer = rw



这样项目1的 committer 组只能对 repos1 版本库下的文件具有写权限而不能修改版本库 repos2,同样项目2的 commiter 也不能修改 repos1 版本库的文件。

例子:

[groups]
cp_admin=zhz,ypf,lzm
cp_2=zhz,ypf

[cp:/]
*=r
@cp_admin=rw