linux下源码包安装与部署svn 2011-9-23
 
 
 
一、安装软件包
yum -y install *gcc*
 
1、安装apache
tar -zxvf httpd-2.2.17.tar.gz -C /usr/src/
cd /usr/src/httpd-2.2.17/
./configure --prefix=/usr/local/apache-2.2.17 --enable-dav --enable-so --enable-modules=most --enable-modules=so
make
make install
 
 
2、安装apr
tar -jxvf apr-1.3.12.tar.bz2 -C /usr/src/
cd /usr/src/apr-1.3.12/
./configure --prefix=/usr/local/apr-1.3.12
make
make install
 
3、安装apr-util
tar -zxvf apr-util-1.3.9.tar.gz -C /usr/src/
cd /usr/src/apr-util-1.3.9/
./configure --prefix=/usr/local/apr-util-1.3.9 --with-apr=/usr/local/apr-1.3.12/
make
make install
 
4、安装sqlite
tar -zxvf sqlite-amalgamation-3.6.17.tar.gz -C /usr/src/
cd /usr/src/sqlite-3.6.17/
./configure --prefix=/usr/local/sqlite-3.6.17
make
make install
 
5、安装zlib
tar -jxvf zlib-1.2.3.tar.bz2 -C /usr/src/
cd /usr/src/zlib-1.2.3/
./configure --prefix=/usr/local/zlib-1.2.3
make
make install
 
6、安装expat
yum -y install expat*
 
7、安装svn
tar -jxvf subversion-1.6.5.tar.bz2 -C /usr/src/
cd /usr/src/subversion-1.6.5/
./configure --prefix=/usr/local/svn-1.6.5 --with-apxs=/usr/local/apache-2.2.17/bin/apxs --with-apr=/usr/local/apr-1.3.12/ --with-apr-util=/usr/local/apr-util-1.3.9/ --with-sqlite=/usr/local/sqlite-3.6.17/ --with-ssl --with-zlib=/usr/local/zlib-1.2.3/ --enable-maintainer-mode
make
make install
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
错误:vn_subr-1.so.0: cannot restore segment prot after reloc: Permission denied
      make: *** [revision-install] 错误 127
 解决方法:关闭selinux    setenforce 0
 
 
二、apache整合
vim /usr/local/apache-2.2.17/conf/httpd.conf
DocumentRoot "/www"
<Directory "/www">
 
<Location /svn>
   DAV svn  
   SVNParentPath /data/svn                      //svn根目录
   AuthType Basic
   AuthName "SVNTest"
   AuthzSVNAccessFile /data/svn/authz.conf      //svn认证文件(设置权限)
   AuthUserFile /data/svn/authfile              //apache认证文件(密码文件)
   Require valid-user
</Location>
 
 
创建虚拟主机
vim /usr/local/apache-2.2.17/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
    DocumentRoot /www/an
    ServerName an.com
</VirtualHost>
 
/usr/local/apache-2.2.17/bin/apachectl start
 
测试域名绑定成功!
 
三、创建svn版本库
ln -s /usr/local/svn-1.6.5/bin/svnadmin /sbin/
ln -s /usr/local/svn-1.6.5/bin/svn /sbin/
 
mkdir /data/svn   //创建根目录
svnadmin create /data/svn/
svnadmin create /data/svn/an  //创建项目仓库
svn import /www/an/ file:///data/svn/an/ -m "import"   //将/www/an导入到svn项目库
 
在导入仓库后,原来的目录树并没有转化成一个工作副本,需要使用checkout手
动导出一个工作副本。
 
chown -R daemon:daemon /data/svn/
svn checkout file:///data/svn/an/ /www/an/        
取出版本 0。
 
chown -R daemon:daemon /www/an/
chmod -R 700 /data/svn/
 
vim /data/svn/an/hooks/post-commit     //svn与apache同步脚本
#!/bin/bash
exportLC_CTYPE=zh_CN.GB18030             //支持语言
SVN=/usr/local/svn-1.6.5/bin/svn         //svn路径
WEB=/www/an                              //apache虚拟目录    
$SVN update --username ancs --password 1 
 
chmod 700 /data/svn/an/hooks/post-commit
chown daemon:daemon /data/svn/an/hooks/post-commit
 
/usr/local/apache-2.2.17/bin/htpasswd -(c)m /data/svn/authfile ancs  //创建apache认证用户
New password: 
Re-type new password:
 
/usr/local/apache2/bin/htpasswd -D /data/svn/authfile test   删除svn用户 
 
 
vim /data/svn/authz.conf         //svn权限配置文件
[test:/]                         //单个用户
ancs = rw
 
[groups]                         //组权限设置
develop=ancs,tom
[test:/]
develop = rw
 
 
启动svn
/usr/local/svn-1.6.5/bin/svnserve -d -r /data/svn/
 
验证是否成功启动
netstat -tulnp | grep svn
tcp        0      0 :::3690       :::*          LISTEN      2675/svnserve
 
 
客户端安装TortoiseSVN-1.6.5.16974-win32-svn-1.6.5.msi
检出成功!