SVN迁移、安装、配置笔记
来源:互联网 发布:天正电气软件怎么样 编辑:程序博客网 时间:2024/06/06 13:58
一、迁移方案
<<<近期发现svn放在机房里托管,速度上很难受到保证,经常遇到网络故障,导致在开发的时候很受影响。故决定将SVN迁移回本地机房里,然后通过建立VPN通过供外界使用,效果图如下>>>
工作机制:SVN Server配置于本地机房中(内网接入),外网接入时需要通过VPN通道。
备份机制:项目进行中时,定期备份SVN服务器的版本库(可采用脚本实现);结项后,手动check out版本库,进行整体备份。
优势:保证了SVN Server的安全性,稳定性。且当SVN Server出现宕机等异常时,可立即切至备份服务器继续工作。
劣势:当 VPN通道出现异常时,导致外网则无法接入SVN Server。
自动备份方案
采用rsync文件同步方式。将SVN版本库进行同步工作,rsync教程
二、安装配置SVN服务器
1.安装apr和apr-util
01
# wget http:
//archive.apache.org/dist/apr/apr-1.2.12.tar.gz
02
# wget http:
//archive.apache.org/dist/apr/apr-util-1.2.12.tar.gz
03
# tar zxvf apr-1.2.12.tar.gz
04
# cd apr-1.2.12
05
# ./configure --prefix=/usr/local/apr
06
# make && make install
07
08
# tar zxvf apr-util-1.2.12.tar.gz
09
# cd apr-util-1.2.12
10
# ./configure --with-apr=/usr/local/apr
11
# make && make install
2.安装apache
1
# wget http:
//mirror.bjtu.edu.cn/apache//httpd/httpd-2.2.16.tar.gz
2
# tar zxvf http-2.2.16.tar.gz
3
# cd http-2.2.16
4
# ./configure --prefix=/usr/local/apache2 --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config --enable-modules=so --enable-dav --enable-maintainer-mode --enable-ssl
5
# make && make install
3.安装subversion
1
# wget http:
//subversion.tigris.org/downloads/subversion-deps-1.6.11.tar.gz
2
# wget http:
//subversion.tigris.org/downloads/subversion-1.6.11.tar.gz
3
# tar zxvf subversion-deps-1.6.11
4
注意:删除apr与apr-util。
5
# tar zxvf subversion-1.6.11.tar.gz
6
# cd subversion-1.6.11
7
# ./configure --prefix=/usr/local/subversion --with-apxs=/usr/local/apache2/bin/apxs --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config --with-ssl
8
# make && make install
/*将svnadmin放入$PATH环境变量里*/
cp /usr/local/subversion/bin/svnadmin /usr/local/sbin
/* 你可以用以下命令检验subversion是否安装成功 */
svnadmin –version
4.subversion环境的搭建
使用与Apache模块的方式运行
首先,把我们需要的SVN模块加载上,修改Apache的配置文件httpd.conf:
1
LoadModule dav_svn_module modules/mod_dav_svn.so
2
LoadModule authz_svn_module modules/mod_authz_svn.so
#然后配置仓库:
1
<Location /svn>
2
DAV svn
3
SVNParentPath /jiunile/svn
4
AuthType Basic
5
AuthName
"Subversion repository"
6
AuthUserFile /jiunile/svn/svnpasswd
7
Require valid-usr
8
AuthzSVNAccessFile /jiunile/svn/svnaccessfile
9
</Location>
建立SVN版本库
1
#cd /jiunile/svn
2
#svnadmin create test
3
#
chmod
-R 777 test
建立svnaccessfile
1
#cd /jiunile/svn
2
#vi svnaccessfile
3
[test:/]
4
xupeng = rw
然后,配置验证方式:
这里使用旦Apache的验证方式:
添加用户和密码:
01
cd /jiunile/svn
02
/usr/local/apace2/bin/htpasswd –bc svnpasswd username password
03
注意:-bc 第一次创建需要c参数,接下来就只要b这个参数即可
04
1
05
06
下面,就要写这个svnaccessfile文件说明
07
1
08
[svn1:/]
//这表示,仓库svn1的根目录下的访问权限
09
dl1 = rw
// svn1仓库dl1用户具有读和写权限
10
dl2 = rw
// svn1仓库dl2用户具有读和写权限
11
dl3 = r
// svn1仓库dl3用户具有读权限
12
[svn2:/]
//svn2仓库根目录下的访问权限
13
harry = r
// harry用户在svn2仓库根目录下只有读权限
14
sally =
// sally用户在 svn2仓库根目录下无任何权限
15
#[/]
// 这个表示在所有仓库的根目录下
16
#* = r
// 这个表示对所有的用户都具有读权限
17
#[groups]
// 这个表示群组设置
18
#svn1-developers = harry, sally
// 这个表示某群组里的成员
19
#svn2-developers = sally
20
#[svn1:/]
21
#@svn1-developers = rw
// 如果在前面加上@符号,则表示这是个群组权限设置
22
1
23
将这个设置完成后。重启Apache
24
1
25
/usr/local/apache2/bin/apachect1 –k restart
就可以通过
http://localhost/svn/test
这个URL来访问仓库了
导入导出SVN版本库可以使用SVN客户端工具实现,很简单,这里就不详细说明了,客户端工具为:TortoiseSVN,图形是只乌龟
三、遇到的问题
问题1.将线上的SVN环境拷贝过来,配置好后,通过URL访问提示如下信息:Could not open the requested SVN filesystem
查看日志文件,发现:Expected FS format ’2′; found format ’3′
问题产生原因:
服务程序是1.4.x版本的svnserve或mod_dav_svn,版本库通过1.5.x版本的svnadmin或TortoiseSVN创建时,会产生这个问题
解决方法:
使用1.5以上的SVN来作为服务
或使用1.4系列的svnadmin或TortoiseSVN来创建版本库
或使用1.4.x系列创建新版本库,通过1.5.x版本备份并恢复原版本库到新版本库
问题2.
httpd: Syntax error on line 443 of /usr/local/apache2/conf/httpd.conf: Cannot load /usr/local/apache2/modules/mod_dav_svn.so into server: /usr/local/lib/libsvn_subr-1.so.0: undefined symbol: apr_memcache_add_server
问题产生的原因:
SVN 依赖的APR版本要正确。如果Apache为2.0.x,对应的APR版本应为0.9.x;Apache为2.2.x,对应的APR版本应为1.2.x。 由于subversion-deps包里的APR是0.9.x的,因此编译svn时要删除从deps里解压出来的apr, apr-util,改而使用apache 2.2里提供的。(这里指定为开始安装的apr目录),这一点知识非常重要。
解决方法:
下载apr-1.2.12.tar.gz与apr-util-1.2.12.tar.gz。
编译安装这两个包,然后重新安装下apache与subversion即可。
问题3.
/usr/bin/ld: cannot find -lexpatcollect2: ld returned 1 exit status
make[1]: *** [test/serf_get] 错误 1
make[1]: Leaving directory `/root/build/subversion-1.6.11/serf
‘make: *** [external-all] 错误 1
解决方法:
yum install expat-devel
- SVN迁移、安装、配置笔记
- svn安装配置迁移步骤
- CentOS下SVN 安装, 配置, 迁移
- svn安装配置笔记
- SVN安装、迁移
- SVN安装、配置、使用笔记
- linux下安装svn,svn搭建,svn迁移详解
- svn仓库迁移及配置注意事项?
- SVN数据迁移到Git笔记
- svn server (ubuntu) 安装与迁移
- redmine安装,配置,备份,迁移
- redis 安装配置 数据迁移
- svn install svn安装配置
- iphone开发笔记二:xcode,svn安装与配置
- iphone开发笔记二:xcode,svn安装与配置
- Centos6.3下apache+svn安装配置笔记
- iphone开发笔记二:xcode,svn安装与配置
- Linux下安装和配置SVN详细笔记
- android 开发书籍打包下载(包含十几本Android开发书籍)
- C++,VC编程感想
- 利用Hudson构建Php持续集成
- 通过Nginx使全站页面变灰,哀悼玉树地震遇难者
- FE,GE,POS口的概念
- SVN迁移、安装、配置笔记
- 开源系统中的代理Squid
- 00059.Oracle创建数据字典管理的表空间
- openssl 百科名片
- 谈谈struts2、spring的getter、setter方法及令人崩溃的错误
- 四层和七层负载均衡的区别
- 00060.Oracle创建本地管理的表空间
- MFC+FTP上传文件实例
- 在线电子书