一、编译安装svn
1. 首先准备所需安装包
yum -y install gcc gcc-c++ glib* expat expat-devel
2. 下载所需安装包(这些包都存放在/app/wodsy/soft/目录下)
subversion-1.6.1.gz
apr-1.5.1.tar.gz
apr-util-1.5.3.tar.bz2
sqlite-amalgamation-3071501.zip
3. 创建svn安装目录和apr安装目录
mkdir -p /app/wodsy/subserver
mkdir -p /app/wodsy/apr
4. 创建svn存放数据目录
mkdir -p /app/wodsy/svndata
5.进入/app/wodsy/soft/将apr和apr-util编译安装
(1) ./configure --prefix=/app/wodsy/svndata/repos/ --with-apr=/app/wodsy/apr/ --with-apr-util=/app/wodsy/apr/(编译安装apr)
(2) ./configure --prefix=/app/wodsy/svndata/repos/ --with-apr=/app/wodsy/apr/ --with-apr-util=/app/wodsy/apr/(编译安装apr-util)
(3) 将 sqlite-amalgamation-3071501.zip解压到当前目录并改名为sqlite-amalgamation
(4) 将 subversion-1.6.1.gz 解压到当前目录
(5) 将 sqlite-amalgamation 拷贝到解压出来的 subversion-1.6.1 目录下
6、 进入subversion-1.6.1 目录编译安装svn
./configure --prefix=/app/wodsy/subversion/ --with-apr=/app/wodsy/apr/ --with-apr-util=/app/wodsy/apr/
make && make install
7、查看subversion目录下会有这些文件并查看版本号就说明安装成功了
(1) ls /app/wodsy/subversion/
bin include lib share (有这些目录)
(2) cp -rf /app/wodsy/subversion/bin/svn* /usr/sbin/ (将svn命令加入系统命令)
(3)svnserve --version
svnserve, version 1.6.1 (r37116) (版本号为1.6.1)
compiled Nov 4 2014, 20:48:43
8、创建svn版本库目录
svnadmin create /app/wodsy/svndata/repos
9、启动svn服务就可以测试访问了
(1) svnserve -d -r /app/wodsy/svndata (启动svn命令)
svnserve -d -r /app/wodsy/svndata --listen-port=8899 (也可以添加端口启动svn)
(2)在客户端匿名访问测试
出现这个画面说明可以访问svn服务
10、 配置svn路径
(1)穿件密码文件和目录文件存放目录
mkdir -p /app/wodsy/svn/conf
(2) 编辑这个目录 vi /app/wodsy/svndata/repos/conf/svnserve.conf
将下面两行去掉注释 并且前面不允许有空格
anon-access = none 不允许匿名用户登录
auth-access = write 开启写权限
将下面两行去掉注释并添加密码文件和验证文件路径 (也可以使用默认的路径)
password-db = /app/wodsy/svn/conf/pwd.conf
authz-db = /app/wodsy/svn/conf/authz.conf
11、进入/app/wodsy/svn/conf/目录下创建 pwd.conf 和authz.conf 文件
vi pwd.conf
[users] (此处存放用户名和用户密码 )
test1 = zxk123456
test2 = fhf123456
test3 = kfw123456
test4 = gy123456
test5 = st123456
.......
vi authz.conf
[groups] 【groups】 表示 组
web = test1,test2 [web] 表示组名,等号后面的是用户
app = test3,test4
admin = test5
.....
[/] 【/】 表示 repos 版本库目录
@admin = rw 【@admin】表示管理员组中的用户对根目录有读写权限
[/WEB] 【/WEB】 表示 repos/WEB 版本库下的项目目录
@web = rw 【@web】 表示web组中的用户只对 WEB 目录有读写权限,对其他目录 无权限
........
注意:这些目录比如【/WEB】等目录都需要提前在客户端先创建好, 再添加到配置文件中,并重启svn服务才会生效
12、此时再去访问就需要添加用户名和密码才可已访问相应的目录
【访问时直接访问repos目录就可以,例如: svn://192.168.112.128/repos】
二、svn数据的备份和迁移
1、源服务器: A
使用svnadmin dump指令将源服务器上的svn库备份成一个文件 svn_bak
将/app/wodsy/svndata/repos库备份成svn_bak 文件,操作如下:
svnadmin dump /app/wodsy/svndata/repos > /root/svn_bak
并将 svn_bak 文件上传到B服务器上
2、目标服务器:B
请先在目标服务器上安装好svn服务
还原svn版本库如下:
svnadmin load /app/wodsy/svndata/repos < /root/svn_bak
请记住:svnadmin load 版本库的时侯,库一定要干净的,即(svnadmin create /app/wodsy/svndata/repos ) 之后是新的.
注意:如果两边的版本库目录结构部一样需要修改 authz.conf 文件
再将 pwd.conf 和authz.conf 文件拷贝到目标服务器上,目录结构必须相同
导入成功即还原完成.