一、下载安装包

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]# tar -xvf apr-1.7.0.tar.gz
[root@SVNSAPP1 apr-1.7.0]#cd /tomcat/apr-1.7.0
[root@SVNSAPP1 apr-1.7.0]#./configure --prefix=/data/apr
[root@SVNSAPP1 apr-1.7.0]#make && make instlal

报错处理rm: cannot remove `libtoolT’: No such file or directory
处理:将configure文件中的RM"RM "RM"cfgfile"这行代码注释掉就可以了

四、安装apr-util

[root@SVNSAPP1 tomcat]# tar -xvf apr-util-1.6.1.tar.gz
[root@SVNSAPP1 tomcat]# cd apr-util-1.6.1
[root@SVNSAPP1 apr-util-1.6.1]#./configure --prefix=/data/apr-util --with-apr=/data/apr
[root@SVNSAPP1 apr-util-1.6.1]# make && make install

错误: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]# ./configure
[root@SVNSAPP1 expat-2.0.1]# make && make install

五、安装scons

[root@SVNSAPP1 tomcat]# cd scons-2.5.1
[root@SVNSAPP1 scons-2.5.1]# python setup.py install --prefix=/data/scons

六、安装serf

[root@SVNSAPP1 tomcat]# cd serf-1.3.9
[root@SVNSAPP1 serf-1.3.9]# /data/scons/bin/scons PREFIX=/data/serf APR=/data/apr APU=/data/apr-util
[root@SVNSAPP1 serf-1.3.9]# /data/scons/bin/scons install
[root@SVNSAPP1 serf-1.3.9]# cp /data/serf/lib/libserf-1.so* /usr/local/lib/

七、安装svn

[root@SVNSAPP1 tomcat]# mkdir -p /data/subversion/sqlite-amalgamation
[root@SVNSAPP1 tomcat]# unzip sqlite-amalgamation-3380200.zip -d /data/subversion
[root@SVNSAPP1 subversion-1.14.1]# ./configure --prefix=/data/svn --with-apr=/data/apr --with-apr-util=/data/apr-util --with-serf=/data/serf --enable-mod-activation --with-lz4=internal --with-utf8proc=internal
[root@SVNSAPP1 subversion-1.14.1]# make && make install

错误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]# echo "export PATH=/data/svn/bin:$PATH" >> /etc/profile
[root@SVNSAPP1 subversion-1.14.1]# source /etc/profile

九、查看安装信息

[root@SVNSAPP1 /]# svnserve --version
svnserve,版本 1.14.1 (r1886195)编译于 Apr  6 2022,11:59:08 在 x86_64-unknown-linux-gnuCopyright (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 --version
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 --version
svn,版本 1.14.1 (r1886195)编译于 Apr  6 2022,11:59:08 在 x86_64-unknown-linux-gnuCopyright (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 /]# mkdir -p /data/rst  #创建代码目录
[root@SVNSAPP1 /]# svnadmin create /data/rst/ztylsy #创建svn代码库
[root@SVNSAPP1 /]#  cd /data/rst/ztylsy
[root@SVNSAPP1 ztylsy]# ls
conf  db  format  hooks  locks  README.txt
[root@SVNSAPP1 ztylsy]#

十一、svn配置路径

配置文件存放目录/data/rst/ztylsy/conf

1、权限配置文件 authz

[groups]
# 按用户组分权限
yh = yh_wxc,yh_ldc  # yh为用户组,等号之后的为用户
wd = wd_lmf,wd_hlh  # wd为用户组,等号之后的为用户
# /表示仓库根目录,用户名=权限
[/]   #表示/data/rst/ztylsy
@yh = rw
@wd = r[/yh] #/data/rst/ztylsy/yh
@yh = rw     # 表示yh组对yh目录有读写权限

第一种方式:单个添加:
[/]
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]
#禁止匿名访问,默认为read,参数:read,write
anon-access = none
#授权用户写权限
auth-access = write
#用户密码文件
password-db = passwd
#授权登录文件
authz-db = authz
#每个svn项目认证名,建议写项目名
realm = /data/rst/ztylsy

参数一定要[general]模块里面,要不然不生效。

十二、启动关闭svn服务

一台机器可以启动多个svn服务,需修改不同端口号。

[root@SVNSAPP1 conf]#  svnserve -d -r /data/rst --listen-port 3690
[root@SVNSAPP1 conf]# ps -ef|grep svn
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]# netstat -ln|grep 3690
tcp        0      0 0.0.0.0:3690                0.0.0.0:*                   LISTEN
[root@SVNSAPP1 conf]# killall svnserve
[root@SVNSAPP1 conf]# netstat -ln|grep 3690
[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
# centos下可以用如下命令管理svn: service svn start(restart/stop)
SVN_HOME=/data/rst
if [ ! -f "/data/svn/bin/svnserve" ]
thenecho "svnserver startup: cannot start"exit
fi
case "$1" instart)echo "Starting svnserve..."/data/svn/bin/svnserve -d --listen-port 3690 -r $SVN_HOMEecho "Finished!";;stop)echo "Stoping svnserve..."killall svnserveecho "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

linux源码编译安装subversion相关推荐

  1. linux源码编译安装apache( httpd-2.4.53)处理服务器支持 TLS Client-initiated 重协商攻击(CVE-2011-1473)

    linux源码编译安装apache 首先我们需要下载相关的依赖包 apr.apr-util.pcre 下载地址 http://archive.apache.org/dist/apr/apr-1.7.0 ...

  2. linux源码编译-安装postgresql数据库(中标麒麟+龙芯CPU)

    linux源码编译-安装postgresql数据库(中标麒麟+龙芯CPU) 一.查看yum源中pgsql版本 二.安装readline-devel 三.下载pgsql库的源码 四.解压下载的源码.co ...

  3. Linux 源码编译安装过程-以安装XZ解压为例

    一.描述 Linux安装软件一般有两种安装方式:安装包安装和源码安装. 1.安装包安装.安装包安装比较简单,例如采用apt-get  install +软件名 命令,安装 deb 包的 Linux 操 ...

  4. Linux源码编译安装步骤及命令

    源码编译安装过程 RPM包:rpm -ivh yum install 源码包----开发工具---->可以执行的程序----->运行安装 • 主要优点 – 获得软件的最新版,及时修复bug ...

  5. linux源码编译安装nginx

    1.从nginx的官方网站下载nginx的安装源码包,要下载.gz格式的包才是linux安装包 网址http://nginx.org/download/ wget http://nginx.org/d ...

  6. Linux源码编译安装程序

    一.程序的组成部分 Linux下程序大都是由以下几部分组成: 二进制文件:也就是可以运行的程序文件 库文件:就是通常我们见到的lib目录下的文件 配置文件:这个不必多说,都知道 帮助文档:通常是我们在 ...

  7. linux源码编译安装lamp环境搭建,linux下源码包编译安装LAMP环境

    1.下载所需的源码包 Httpd-2.4.10  apr-1.5.1  apr-util-1.5.3  pcre-8.33(这些均可在Apache官网进行下载) Mysql-5.5.39    php ...

  8. Linux源码编译安装apache httpd2.4.48

    Apache httpd httpd是Apache基金会的HTTP服务器项目:HTTP Server project httpd-2.4系列本版,依赖于apr-1.4+, apr-util-1.4+ ...

  9. linux 编译pcl,PCL/python-pcl Linux源码编译安装

    链接 PCL官网:http://www.pointclouds.org/ PCL GitHub:https://github.com/PointCloudLibrary/pcl python-pcl ...

最新文章

  1. c/c++ c++ file c++/stl/boost 判断文件目录是否存在
  2. 改善C#程序的建议10:用Parallel简化Task
  3. 服务端发post请求产生的编码问题
  4. Java 数组转型和范型
  5. win系统注册缺少的库 32位系统 64位系统
  6. How to: Display a Gradient Fill
  7. 以编程方式确定Java类的JDK编译版本
  8. 关于Kubernetes的常见问题
  9. 三十一、K8s供应链安全2 - 镜像的检测及优化与yaml文件安全
  10. 从零基础入门Tensorflow2.0 ----一、1.3 实战分类模型(实战回调函数)
  11. 深入解读Linux内存管理系列(3)——MMU初始化和页表的建立
  12. jmeter下载安装配置(超细)
  13. NVIDIA显卡驱动丢失 安装失败
  14. Seeds超像素分割
  15. 使用多线程爬取笔趣阁
  16. Ethernet/IP介绍
  17. IP和MNC地址协议
  18. 下面这条语句一共创建了多少个对象:String bb=aa+bb+cc+dd
  19. 276. Paint Fence篱笆涂色
  20. 基于SSH的校园二手物品交易系统

热门文章

  1. 国内数字藏品=NFT?
  2. 警务移动安全管理终端,助力广东省公安厅移动警务管理
  3. linux系统获取4G模块IMEI号
  4. 英语PETS一级和计算机一级,全国英语等级考试PETS一级证书
  5. Android传感器利用Senser实现不同的传感器
  6. FLAG_SECURE:安卓无法抓取页面截屏
  7. 快递企业下一步:国际化、多元化,发展科技提升竞争力
  8. Anaconda误删 ImportError: No module named conda.cli
  9. 直管段管壁粗糙度对孔板计量的影响
  10. 对计算机专业的兴趣写一篇作文,以兴趣爱好为话题的作文五篇