准备
1.subversion官网 http://subversion.apache.org/download/ 下载tar.gz的安装包
2.还需要到 http://apr.apache.org/download.cgi 下载subversion必须的apr和apr-util的tar.gz的包,subversion安装这2个包是必须的
Apr安装
1解压
tar -zxvf apr-1.5.2.tar.gz
2 指定apr安装目录
[root@241 apr-1.5.2]# ./configure --prefix=/home/apr
3 编译安装
[root@241 apr-1.5.2]# make
[root@241 apr-1.5.2]# make install
Apr-util安装
1解压
tar -zxvf apr-util-1.4.1.tar.gz
2 指定apr-util安装目录
[root@241 apr-util-1.5.4]# ./configure --prefix=/home/apr-util --with-apr=/home/apr
注意需要使用—with-apr指定apr的安装目录
3 编译安装
[root@241 apr-util-1.5.4]# make
[root@241 apr-util-1.5.4]# make install
Subversion安装
1解压
[root@241 opt]# tar -zxvf subversion-1.9.4.tar.gz
2指定svn安装目录
[root@241 subversion-1.9.4]# ./configure --prefix=/home/subversion --with-apr=/home/apr --with-apr-util=/home/apr-util --with-sqlite=/home/sqlite
若提示如下错误:
configure: error: Subversion requires SQLite
则需要:
安装sqlite(http://www.sqlite.org/download.html)
下载最新安装包,目前最新为sqlite-autoconf-3071300.tar.gz
[root@241 opt]# tar -xzvf sqlite-autoconf-3150100.tar.gz
[root@241 opt]# cd sqlite-autoconf-3150100
[root@241 sqlite-autoconf-3150100]# ./configure --prefix=/home/sqlite
[root@241 sqlite-autoconf-3150100]# make
[root@241 sqlite-autoconf-3150100]# make install
3 编译安装
[root@241 subversion-1.9.4]# make
[root@241 subversion-1.9.4]# make install
4 加入svn path
[root@241 etc]# vi /etc/profile
在文件最后面添加
PATH=/u01/svnapp/subversion/bin:$PATH
export PATH
保存退出执行
[root@241 etc]# . /etc/profile
5 测试SVN是否安装成功,执行: svnserve --version
服务端配置
1资源库创建
利用svn命令创建资源库
[root@241 home]# svnadmin create/home/svn_repository/project_test
2 创建用户组及用户(注:修改的文件前面不能有空格,否则启动svn server出错)
a.进入版本库中的配置目录conf,此目录有三个文件: svn服务综合配置文件(svnserve.conf)、 用户名口令文件(passwd)、权限配置文件(authz)
b.修改版本配置库文件[root@241 conf]# vi svnserve.conf
在使用eclise安装的插件subclipse查看svn的提交历史记录的时候,提示org.apache.subversion.javahl.ClientException: Item is not readable错误:我的配置基本情况如下:
windows7安装eclise并安装subclise插件,在centos配置svn服务器,svn服务器中用户 demo权限是
[/]
demo = rw
其中有一条:anon-access的配置条目是 anon-access=read
解决的方法是:
在conf目录下面的svnserve.conf 文件中 修改配置文件将anon-access=read修改成anon-access=none,然后重启svn服务器
再次访问就正常了,能看到历史记录信息了。
c.设置账号密码 [root@241 conf]# vi passwd
[root@241 conf]# vi passwd
### This file is an example password file for svnserve.
### Its format is similar to that of svnserve.conf. As shown in the
### example below it contains one section labelled [users].
### The name and password for each user follow, one account per line.
[users]
# harry = harryssecret
# sally = sallyssecret
test1=123456
test2=123456
account1=123456
account2=123456
zhucw=123456
zhangtm=123456
huj=123456
yanxh=123456
liqy=123456
wangg=123456
huangjm=123456
zhangxy=123456
luxl=123456
xiaol=123456
d.设置权限[root@241 conf]# vi authz
## This file is an example authorization file for svnserve.
### Its format is identical to that of mod_authz_svn authorization
### files.
### As shown below each section defines authorizations for the path and
### (optional) repository specified by the section name.
### The authorizations follow. An authorization line can refer to:
### - a single user,
### - a group of users defined in a special [groups] section,
### - an alias defined in a special [aliases] section,
### - all authenticated users, using the '$authenticated' token,
### - only anonymous users, using the '$anonymous' token,
### - anyone, using the '*' wildcard.
###
### A match can be inverted by prefixing the rule with '~'. Rules can
### grant read ('r') access, read-write ('rw') access, or no access
### ('').
[aliases]
# joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average
[groups]
pdall = zhucw,xiaol,zhangtm,huangjm,huj,zhangxy
pd001 = zhucw
pd002 = zhucw
pd003 = zhucw
pd_b2b = xiaol,huj,huangjm,zhangxy,zhangtm
pd_b2b_r =
pd_admin = zhucw
pd_inter = zhucw
pd_test = liqy,yanxh
rd_admin = xiaol,zhucw
rdall = xiaol,zhucw
rd001 = zhucw,xiaol,zhangtm,huangjm,huj,zhangxy
rd_test = liqy,yanxh
devall = zhucw,xiaol,zhangtm,huangjm,huj,zhangxy
# [/foo/bar]
# harry = rw
# &joe = r
# * =
# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r
[/]
@pd_admin=rw
#########################
[tshop:/]
@pdall = rw
#########################
[zgjf-pd:/]
@pdall=rw
e.启动svn服务
第一种:[root@241 conf]# svnserve -d -r /svn/
第二种:多版本库时可使用相同的配置文件
[root@241 svn]# mkdir conf
[root@241 svn]# cp -rp /svn/zgjf-pd/conf/svnserve.conf/svn/conf/
[root@241 svn]# cp -rp /svn/zgjf-pd/conf/authz /svn/conf/
[root@241 svn]# cp -rp /svn/zgjf-pd/conf/passwd /svn/conf/
第三种:指定端口启动
[root@241 conf]# svnserve -d -r /svn --config-file=/svn/conf/svnserve.conf --listen-port 88
3安装好的svn服务端,默认是不会开机自启动的,每次开机自己启动会很麻烦,我们可以把它设成开机启动
a.首先:编写一个启动脚本svn_startup.sh,我放在/svn/svn_startup.sh
[root@241 svn]# vi svn_startup.sh
#!/bin/bash
#svnserve -d -r /svn --config-file=/svn/conf/svnserve.conf
/opt/svn1.8.16/bin/svnserve -d -r /svn --config-file=/svn/conf/svnserve.conf --listen-port 8888
这里的svnserve路径保险起见,最好写绝对路径,因为启动的时候,环境变量也许没加载。
绝对路径怎么查?
[root@241 svn]# which svnserve
/opt/svn1.8.16/bin/svnserve
b.然后修改该脚本的执行权限
[root@241 svn]# chmod 777 svn_startup.sh
c.最后:加入自动运行,在rc.local末尾添加脚本的路径,如:
[root@241 svn]# vi /etc/rc.d/rc.local
#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.
touch /var/lock/subsys/local
/svn/svn_startup.sh
资源库迁移
1导出资源库到dump文件
2将dump文件拷贝到目标机器
[root@localhost home]# scp -r zgjf_pd_41185_41243.dump root@192.168.1.241:/home/3导入dump文件到新的资源库位置
svnadmin load /svn/zgjf-pd < /home/yy/svndump/zgjf_pd_41185_41243.dump