CentOs5.4 64/32系统 ---源码安装subversion-1.6.19

来源:互联网 发布:mac 中文输入法 编辑:程序博客网 时间:2024/05/15 13:15

subversion-1.6.19安装:

1.      下载安装包:

subversion-1.6.19.tar.gz

sqlite-amalgamation-3.7.3.tar.gz

 

解压:# tar -zxvf subversion-1.6.19.tar.gz

# tar -zxvf sqlite-amalgamation-3.7.3.tar.gz

 

2.      获取sqlite:

进入解压目录:cd sqlite-3.7.3/

执行:cp  sqlite3.c../subversion-1.6.19/sqlite-amalgamation/sqlite3.c

 

3.      安装subversion:

进入解压目录:# cd subversion-1.6.19

执行:

# ./configure--prefix=/usr/local/subversion --with-apxs=/usr/local/apache2.4.3/bin/apxs--with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/  --with-ssl --with-zlib=/usr/local/lib--without-berkeley-db --enable-maintainer-modemake

make

make install

 

4.      检查

执行 # cat /usr/local/apache2/conf/httpd.conf | grep svn

 

显示以下信息则为正确安装成功:

LoadModule dav_svn_modulemodules/mod_dav_svn.so

LoadModule authz_svn_modulemodules/mod_authz_svn.so

 

5.      更改apache运行用户

#groupadd svn

#useradd -g svn svn

vi /usr/local/apache2/conf/httpd.conf

添加:

User svn

Group svn

 

6.      SVN访问配置

# Location中的/svn只是个虚目录,用于区别普通的网站访问,

# 例如url为http://127.0.0.1/svn/repos,则/svn的部分就会由下述配置去解析。

# 如果你想在url中使用/svnroot去解析,那么下面的Location配置就变为

<Location /svnroot>

<Location /svn/>

      #----虚拟目录后要加上"/",否则访问出现403.(bug)

   Dav svn

   SVNListParentPath on

       #----允许在网页上显示svn父目录list --记住,注释不要和配置项写到同一行,否则会出错..

   SVNParentPath "/home/svn/repositories"

       #----/home/svn/repositories 是SVN的父目录

   AuthType Basic

       #----连接类型设置

   AuthName "Subversion Repository"

       #----连接框提示

   AuthUserFile /home/svn/etc/passwd

       #----用户配置文件

   AuthzSVNAccessFile /home/svn/etc/authz

       #----验证

   Satisfy Any

   Require valid-user

</Location>

 

 

7.      建立用户验证文件(新建用户)

新建:/usr/local/apache2/bin/htpasswd-c /home/svn/etc/passwd svn

添加:/usr/local/apache2/bin/htpasswd  /home/svn/etc/passwd svn2

 

8.      建立权限验证文件(vi /home/svn/etc/authz)

 

[groups]

group_develop = svn

 

[/]

* = r

 

[repos1:/]

@group_develop = rw

* =

 

[repos2:/]

@group_develop = rw

svnman = rw

 

9.      创建资源库

/usr/local/subversion/bin/svnadmin create--fs-type fsfs /var/svn/repositories/rep1

/usr/local/subversion/bin/svnadmin create--fs-type fsfs /var/svn/repositories/rep2

 

 

10.  添加环境变量,方便试用svnadmin

打开vi  /etc/profile,添加下面语句:

exportSUBVERSION_HOME=/usr/local/subversion

exportPATH=$PATH:$SUBVERSION_HOME/bin

 

11.  windows xp 迁移到centos

到subversion安装目录,进入cmd,执行:

svnadmindump svn路径 >目标dump如:

svnadmin dump F:\svn\repo\project >F:\qianwangju.dump

 

上传qianwangju.dump到服务器,执行load:

svnadmin load /var/svn/repositories/rep1/</var/svn/dump/qianwangju.dump

FAQ:

1、错误:

httpd:Syntax error on line 53 of /usr/local/apache2/conf/httpd.conf: Cannot load/usr/local/apache2/modules/mod_dav_svn.so into server:/usr/local/apache2/modules/mod_dav_svn.so: undefined symbol:dav_register_provider

解决办法:

重新./configure增加参数,编译,安装 

./configure  --enable-dav --enable-so--enable-threads --enable-maintainer-mode --enable-cache --enable-rewrite=shared-enable-deflate=shared --enable-expires=shared --prefix=/usr/local/apache2--with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/

 

2、错误:

Can'topen file '/var/svn/repositories/rep1/db/txn-current-lock': Permission denied

由于用户权限为root用户,普通用户没有修改的权限。

        通过创建普通用户subversion,然后执行chown –Rsubversion:subversion rep1

     解决该问题。


懒虫子