一、下载安装包
subversion源码包下载 https://subversion.apache.org/download.cgi
apr源码包 https://dist.apache.org/repos/dist/release/apr/
apr-util源码包 https://dist.apache.org/repos/dist/release/apr/
serf源码包 https://www.apache.org/dist/serf/
scons源码包 https://sourceforge.net/projects/scons/files/scons
sqlite-amalgamation源码包 http://www.sqlite.org
二、安装必要依赖
yum -y install zlib zlib-devel openssl openssl-devel
三、安装apr
[root@SVNSAPP1 tomcat]
[root@SVNSAPP1 apr-1.7.0]
[root@SVNSAPP1 apr-1.7.0]
[root@SVNSAPP1 apr-1.7.0]
报错处理rm: cannot remove `libtoolT’: No such file or directory 处理:将configure文件中的
R
M
"
RM "
RM"cfgfile"这行代码注释掉就可以了
四、安装apr-util
[root@SVNSAPP1 tomcat]
[root@SVNSAPP1 tomcat]
[root@SVNSAPP1 apr-util-1.6.1]
[root@SVNSAPP1 apr-util-1.6.1]
错误:xml/apr_xml.c:35:19: 错误:expat.h:没有那个文件或目录 处理:在https://launchpad.net/ubuntu/+source/expat/2.0.1-7.2ubuntu1.4找到了expat_2.0.1.orig.tar.gz包进行安装,然后重新编译通过
[root@SVNSAPP1 expat-2.0.1]
[root@SVNSAPP1 expat-2.0.1]
五、安装scons
[root@SVNSAPP1 tomcat]
[root@SVNSAPP1 scons-2.5.1]
六、安装serf
[root@SVNSAPP1 tomcat]
[root@SVNSAPP1 serf-1.3.9]
[root@SVNSAPP1 serf-1.3.9]
[root@SVNSAPP1 serf-1.3.9]
七、安装svn
[root@SVNSAPP1 tomcat]
[root@SVNSAPP1 tomcat]
[root@SVNSAPP1 subversion-1.14.1]
[root@SVNSAPP1 subversion-1.14.1]
错误1:cannot stat `sqlite-amalgamation-3280000’: No such file or directory 处理:需要将sqlite-amalgamation-3380200.zip此文件解压到你当前subversion编译安装所处目录的sqlite-amalgamation(自己新建)目录中。 mv sqlite-amalgamation-3280000 subversion-1.12.0/sqlite-amalgamation
错误2:configure: error: Subversion requires LZ4 >= r129, or use --with-lz4=internal 解决:./configure命令添加 --with-lz4=internal选项
错误3:configure: error: Subversion requires UTF8PROC 解决:./configure命令添加 --with-utf8proc=internal
八、添加环境变量
[root@SVNSAPP1 subversion-1.14.1]
[root@SVNSAPP1 subversion-1.14.1]
九、查看安装信息
[root@SVNSAPP1 /]
svnserve,版本 1.14.1 (r1886195)
编译于 Apr 6 2022,11:59:08 在 x86_64-unknown-linux-gnu
Copyright (C) 2021 The Apache Software Foundation.
This software consists of contributions made by many people;
see the NOTICE file for more information.
Subversion is open source software, see http://subversion.apache.org/
下列版本库后端(FS) 模块可用:
* fs_fs : 模块与文本文件(FSFS)版本库一起工作。
* fs_x : Module for working with an experimental (FSX) repository.
[root@SVNSAPP1 /]
svn: error while loading shared libraries: libserf-1.so.1: cannot open shared object file: No such file or directory
[root@SVNSAPP1 /]
错误:svn: error while loading shared libraries: libserf-1.so.1: cannot open shared object file: No such file or director 处理:编辑把我们拷贝serf的文件的目录加上
vi /etc/ld.so.conf
把我们拷贝serf的文件的目录加上
/usr/local/lib
ldconfig
[root@SVNSAPP1 /]
svn,版本 1.14.1 (r1886195)
编译于 Apr 6 2022,11:59:08 在 x86_64-unknown-linux-gnu
Copyright (C) 2021 The Apache Software Foundation.
This software consists of contributions made by many people;
see the NOTICE file for more information.
Subversion is open source software, see http://subversion.apache.org/
可使用以下的版本库访问模块:
* ra_svn : 使用 svn 网络协议访问版本库的模块。
- 处理“svn”方案
* ra_local : 访问本地磁盘的版本库模块。
- 处理“file”方案
* ra_serf : Module for accessing a repository via WebDAV protocol using serf.
- using serf 1.3.9 (compiled with 1.3.9)
- 处理“http”方案
- 处理“https”方案
The following authentication credential caches are available:
* GPG-Agent
[root@SVNSAPP1 /]
十、创建svn仓库
[root@SVNSAPP1 /]
[root@SVNSAPP1 /]
[root@SVNSAPP1 /]
[root@SVNSAPP1 ztylsy]
conf db format hooks locks README.txt
[root@SVNSAPP1 ztylsy]
十一、svn配置路径
配置文件存放目录/data/rst/ztylsy/conf
1、权限配置文件 authz
[groups]
yh = yh_wxc,yh_ldc
wd = wd_lmf,wd_hlh
[/]
@yh = rw
@wd = r
[/yh]
@yh = rw
第一种方式:单个添加: [/] admin = rw test = r 第二种方式(后面采用此方式配置):用户分组,再设权限 [/] @admin = rw @test = r
2、用户名口令文件 passwd
[users]
test = 123456
yh_wxc = Yinhai@123
格式为 账号 = 密码,上面配置了两个用户test和yh_wxc。
3、svn服务配置文件 svnserve.conf
[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
realm = /data/rst/ztylsy
参数一定要[general]模块里面,要不然不生效。
十二、启动关闭svn服务
一台机器可以启动多个svn服务,需修改不同端口号。
[root@SVNSAPP1 conf]
[root@SVNSAPP1 conf]
root 24761 1 0 12:25 ? 00:00:00 svnserve -d -r /data/rst --listen-port 3690
root 24763 43575 0 12:25 pts/0 00:00:00 grep svn
[root@SVNSAPP1 conf]
tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN
[root@SVNSAPP1 conf]
[root@SVNSAPP1 conf]
[root@SVNSAPP1 conf]
十三、设置svn服务开机启动
方法一: 修改/etc/rc.d/rc.local文件,添加如下命令
/data/svn/bin/svnserve -d -r /data/rst --listen-port 3690
方法二: 在/etc/init.d/目录下创建svn文件并设置权限755,代码如下
#!/bin/bash
SVN_HOME=/data/rst
if [ ! -f "/data/svn/bin/svnserve" ]
then
echo "svnserver startup: cannot start"
exit
fi
case "$1" in
start)
echo "Starting svnserve..."
/data/svn/bin/svnserve -d --listen-port 3690 -r $SVN_HOME
echo "Finished!"
;;
stop)
echo "Stoping svnserve..."
killall svnserve
echo "Finished!"
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage: svn { start | stop | restart } "
exit 1
esac
chmod +x /etc/init.d/svn #添加执行权限
其它:为便于管理建议把SVN的版本库建在同一个目录中/data/rst/项目1,/data/rst/项目2,/data/rst/项目3。这样子最后在启动的时候只要启动最外一层目录就可以了:svnserve -d -r /data/rst svn的个URL就是svn://IP/项目3,svn://IP/项目2,svn://IP/项目1
十四、测试svn可用性
1、windows客户端做chekcout。
2、新建一个文件上传,commit提交 3、linux使用SVN命令进行checkout操作,登录后可以看到Windows上创建的文件已经出现cs.txt
|