Linux 系统 SVN 源码安装与配置全流程指南

news2025/4/8 8:42:26

Linux系统SVN源码安装与配置全流程指南

一、环境准备

  1. 系统要求

    • CentOS 7及以上版本
    • 需安装GCC编译工具链
  2. 依赖项

    • APR/APR-UTIL(Apache可移植运行库)
    • SQLite(嵌入式数据库)
    • zlib(数据压缩库)

二、下载及安装

1. SVN源码下载

下载地址: http://subversion.apache.org/download#recommended-release
在这里插入图片描述

2. 安装

安装步骤如下:

1、先在服务器创建一个目录: mkdir -p /data/program/
2、上传SVN安装包,然后解压tar:tar -zxvf subversion-1.14.5.tar.gz
3、进入安装包:cd subversion-1.14.5
4、在该文件目录下执行SVN安装命令:./configure --prefix=/data/program/svn,若上述命令执行未报错,继续执行下面命令:进行安装:make 安装 make install

(1)如果执行./configure --prefix=/data/program/svn这个命令,出现下面这个错 no acceptable C compiler fount in $PATH,是因为缺少gcc,需要安装一下:

在这里插入图片描述
安装gcc: yum install gcc

(2)如果执行./configure --prefix=/data/program/svn命令提示下面这个错 no suitable APR found,是因为找不到APR,需要下载安装apr和apr-util

在这里插入图片描述
下载地址:https://archive.apache.org/dist/apr/
在这里插入图片描述
在这里插入图片描述
下载好apr和apr-util后,上传到服务器,进行解压安装。

tar -zxvf apr-1.6.5.tar.gz
cd apr-1.6.5
./configure --prefix=/usr/local/apr
make && make install
tar -zxvf apr-util-1.6.3.tar.gz
cd apr-util-1.6.3
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make && make install

安装依赖完成后:继续进行SVN的安装,进入subversion-1.14.0目录,因为之前安装了apr和apr-util,所以这次执行的./configure后面需要加上这两个`

./configure --prefix=/data/program/svn --with-apr=/data/program/apr --with-apr-util=/data/program/apr-util

(3)若sqlite报错,是sqlite版本过低,需要下载安装比较新的sqlite:

在这里插入图片描述

sqlite-autoconf下载地址: https://www.sqlite.org/download.html
在这里插入图片描述

下载好后,上传到服务器,解压安装sqlite-autoconf。

tar -zxvf sqlite-autoconf-3490100.tar.gz
cd sqlite-autoconf-3490100
./configure --prefix=/usr/local/sqlite
make && make install

安装sqlite-autoconf成功之后,继续执行SVN安装:./configure --prefix=/data/program/svn --with-apr=/data/program/apr --with-apr-util=/data/program/apr-util --with-sqlite=/data/program/sqlite

(4)若zlib报错:

下载zlib地址: http://www.zlib.net/
进入之后往后找,找到下面这个圈住的地方,点击下载:
在这里插入图片描述
下载完成之后上传到服务器,解压安装,如下:

tar -zxvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure --prefix=/usr/local/zlib
make && make install

安装好zlib之后,继续安装SVN,执行命令:./configure --prefix=/data/program/svn --with-apr=/data/program/apr --with-apr-util=/data/program/apr-util --with-sqlite=/data/program/sqlite --with-zlib=/data/program/zlib

执行之后如果报下面这个错 configure: error: Subversion requires LZ4 >= r129, or use --with-lz4=internal,需要在./configure之后加上 --with-lz4=internal 选项:

在这里插入图片描述

--with-apr=/data/program/apr --with-apr-util=/data/program/apr-util --with-sqlite=/data/program/sqlite --with-zlib=/data/program/zlib --with-lz4=internal

执行之后如果报下面这个错configure: error: Subversion requires UTF8PROC; install it
or re-run configure with “–with-utf8proc=internal”,需要在./configure之后加上
–with-utf8proc=internal 选项: 在这里插入图片描述

--with-apr=/data/program/apr --with-apr-util=/data/program/apr-util --with-sqlite=/data/program/sqlite --with-zlib=/data/program/zlib --with-lz4=internal --with-utf8proc=internal

**安装成功以后执行:cd subversion-1.14.5 执行 make和make install

3. 环境变量配置

SVN安装成功之后,加入svn path:
进入配置文件:vi /etc/profile
在文件最后面加上下面这个命令:export PATH=/data/program/svn/bin
保存退出后,刷新下文件,执行命令:source /etc/profile**
然后输入: svnserve --version ,如果能看到svn版本就已经安装成功了。

在这里插入图片描述
SVN创建完成以后进行代码库,配置文件,添加用户名权限等,见下文:

三、最终编译安装SVN命令

tar -zxvf subversion-1.14.0.tar.gz
cd subversion-1.14.0
./configure \
--prefix=/usr/local/svn \
--with-apr=/usr/local/apr \
--with-apr-util=/usr/local/apr-util \
--with-sqlite=/usr/local/sqlite \
--with-zlib=/usr/local/zlib \
--with-lz4=internal \
--with-utf8proc=internal
make && make install

四、配置SVN

1. 创建仓库

svnadmin create /home/svn

2. 配置认证文件

vi /home/svn/conf/svnserve.conf

修改以下参数(取消文件内的注释并添加svn路径):

anon-access = read
auth-access = write
password-db = passwd
authz-db = authz
realm = /home/svn

3. 设置用户密码

vi /home/svn/conf/passwd

添加用户:

[users]
admin = admin123
user1 = password1

4. 配置权限控制

vi /home/svn/conf/authz

设置权限规则(以群组的方式创建):

[groups]
admin_group = admin

注:[/]   必须输入,否则报错
末尾加上:
[/]   
@admin_group = rw
user1 = r

五、启动与验证

1. 启动服务

svnserve -d -r /home/svn

2. 验证安装

svnserve --version
# 应显示版本信息:svnserve, version 1.14.0

3. 测试连接

svn list svn://localhost:3690 --username admin --password admin123
# 应列出仓库内容

六、常见问题处理

  1. 缺少GCC编译器

    yum install gcc -y
    
  2. APR未找到错误
    确保--with-apr参数指向正确路径:

    --with-apr=/usr/local/apr
    
  3. SQLite依赖问题
    检查SQLite安装路径是否正确:

    --with-sqlite=/usr/local/sqlite
    
  4. 端口冲突
    终止冲突进程:

    lsof -i :3690
    kill -9 [PID]
    

七、客户端访问

使用TortoiseSVN客户端,输入仓库地址:

svn://服务器IP:3690

输入用户名密码即可检出仓库。

八、服务管理

  • 停止服务:killall svnserve
  • 重启服务:svnserve -d -r /home/svn

通过以上步骤,您可以在Linux系统上完成SVN的完整安装与配置,实现团队协作开发的版本控制管理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2330351.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Redis 的五种数据类型面试回答

这里简单介绍一下面试回答、我之前有详细的去学习、但是一直都觉得太多内容了、太深入了 然后面试的时候不知道从哪里讲起、于是我写了这篇CSDN帮助大家面试回答、具体的深入解析下次再说 面试官你好 我来介绍一下Redis的五种基本数据类型 有String List Set ZSet Map 五种基…

关于类模板STL中vector容器的运用和智能指针的实现

代码题&#xff1a;使用vector实现一个简单的本地注册登录系统 注册&#xff1a;将账号密码存入vector里面&#xff0c;注意防重复判断 登录&#xff1a;判断登录的账号密码是否正确 #include <iostream> #include <cstring> #include <cstdlib> #in…

Opencv计算机视觉编程攻略-第十一节 三维重建

此处重点讨论在特定条件下&#xff0c;重建场景的三维结构和相机的三维姿态的一些应用实现。下面是完整投影公式最通用的表示方式。 在上述公式中&#xff0c;可以了解到&#xff0c;真实物体转为平面之后&#xff0c;s系数丢失了&#xff0c;因而无法会的三维坐标&#xff0c;…

git修改已经push的commit的message

1.修改信息 2.修改message 3.强推

2026考研数学张宇武忠祥复习视频课,高数基础班+讲义PDF

2026考研数学武忠祥老师课&#xff08;网盘&#xff09;&#xff1a;点击下方链接 2026考研数学武忠祥网课&#xff08;最新网盘&#xff09; 一、基础阶段&#xff08;3-5个月&#xff09; 目标&#xff1a;搭建知识框架掌握基础题型 教材使用&#xff1a; 高数&#xff1a;…

C++使用Qt Charts可视化大规模点集

引言 数据可视化是数据分析和决策过程中的重要环节。随着数据量的不断增长&#xff0c;如何高效地可视化大规模数据集成为了一个挑战。Qt Charts 提供了一个强大的工具集&#xff0c;用于创建直观的数据可视化图表。本文将探讨如何使用 C 和 Qt Charts 可视化大规模点集&#…

质检LIMS系统在生态修复企业的实践 生态修复行业的质量管控难题

一、生态修复行业的质量管控新命题 在生态文明建设的大背景下&#xff0c;生态修复企业面临着复杂的环境治理挑战。土壤改良、水体净化、植被恢复等工程&#xff0c;均需以精准的实验数据支撑决策。传统实验室管理模式存在数据孤岛、流程非标、合规风险高等痛点&#xff0c;而…

Spring Cloud之服务入口Gateway之Route Predicate Factories

目录 Route Predicate Factories Predicate 实现Predicate接口 测试运行 Predicate的其它实现方法 匿名内部类 lambda表达式 Predicate的其它方法 源码详解 代码示例 Route Predicate Factories The After Route Predicate Factory The Before Route Predicate Fac…

《AI大模型应知应会100篇》第6篇:预训练与微调:大模型的两阶段学习方式

第6篇&#xff1a;预训练与微调&#xff1a;大模型的两阶段学习方式 摘要 近年来&#xff0c;深度学习领域的一个重要范式转变是“预训练-微调”&#xff08;Pretrain-Finetune&#xff09;的学习方式。这种两阶段方法不仅显著提升了模型性能&#xff0c;还降低了特定任务对大…

java后端对时间进行格式处理

时间格式处理 通过java后端&#xff0c;使用jackson库的注解JsonFormat(pattern "yyyy-MM-dd HH:mm:ss")进行格式化 package com.weiyu.pojo;import com.fasterxml.jackson.annotation.JsonFormat; import lombok.AllArgsConstructor; import lombok.Data; import …

汽车BMS技术分享及其HIL测试方案

一、BMS技术简介 在全球碳中和目标的战略驱动下&#xff0c;新能源汽车产业正以指数级速度重塑交通出行格局。动力电池作为电动汽车的"心脏"&#xff0c;其性能与安全性不仅直接决定了车辆的续航里程、使用寿命等关键指标&#xff0c;更深刻影响着消费者对电动汽车的…

【TI MSPM0】CMSIS-DSP库学习

一、什么是CMSIS-DSP库 基于Cortex微控制器软件接口标准的数字信号处理的函数库 二、页面概览 这个用户手册用来描述CMSIS-DSP软件的函数库&#xff0c;有通用的计算处理函数给Cortex-M和Cortex-A的处理器使用 三、工程学习 1.导入工程 2.样例介绍 在Q15的格式下&#xff0c…

Vue3:初识Vue,Vite服务器别名及其代理配置

一、创建一个Vue3项目 创建Vue3项目默认使用Vite作为现代的构建工具&#xff0c;以下指令本质也是通过下载create-vue来构建项目。 基于NodeJs版本大于等于18.3&#xff0c;使用命令行进行操作。 1、命令执行 npm create vuelatest输入项目名称 2、选择附加功能 选择要包含的功…

Go语言类型捕获及内存大小判断

代码如下&#xff1a; 类型捕获可使用&#xff1a;reflect.TypeOf()&#xff0c;fmt.Printf在的%T。 内存大小判断&#xff1a;len()&#xff0c;unsafe.Sizeof。 package mainimport ("fmt""unsafe""reflect" )func main(){var i , j 1, 2f…

学透Spring Boot — 017. 处理静态文件

这是我的《学透Spring Boot》专栏的第17篇文章&#xff0c;了解更多内容请移步我的专栏&#xff1a; Postnull CSDN 学透 Spring Boot 目录 静态文件 静态文件的默认位置 通过配置文件配置路径 通过代码配置路径 静态文件的自动配置 总结 静态文件 以前的传统MVC的项目…

CMake实战指南一:add_custom_command

CMake 进阶&#xff1a;add_custom_command 用法详解与实战指南 在 CMake 构建系统中&#xff0c;add_custom_command 是一个灵活且强大的工具&#xff0c;允许开发者在构建流程中插入自定义操作。无论是生成中间文件、执行预处理脚本&#xff0c;还是在目标构建前后触发额外逻…

懂x帝二手车数据爬虫-涉及简单的字体加密,爬虫中遇到“口”问题的解决

#脚本如下 import requests import pprint import timeurl https://www.dongchedi.com/motor/pc/sh/sh_sku_list?aid1839&app_nameauto_web_pc headers {User-Agent: Mozilla/5.0 }font_map {58425: 0, 58700: 1, 58467: 2, 58525: 3,58397: 4, 58385: 5, 58676: 6, 58…

4.7学习总结 java集合进阶

集合进阶 泛型 //没有泛型的时候&#xff0c;集合如何存储数据 //结论: //如果我们没有给集合指定类型&#xff0c;默认认为所有的数据类型都是object类型 //此时可以往集合添加任意的数据类型。 //带来一个坏处:我们在获取数据的时候&#xff0c;无法使用他的特有行为。 //此…

Python高阶函数-eval深入解析

1. eval() 函数概述 eval() 是 Python 内置的一个强大但需要谨慎使用的高阶函数&#xff0c;它能够将字符串作为 Python 表达式进行解析并执行。 基本语法 eval(expression, globalsNone, localsNone)expression&#xff1a;字符串形式的 Python 表达式globals&#xff1a;可…

LLM面试题八

推荐算法工程师面试题 二分类的分类损失函数&#xff1f; 二分类的分类损失函数一般采用交叉熵(Cross Entropy)损失函数&#xff0c;即CE损失函数。二分类问题的CE损失函数可以写成&#xff1a;其中&#xff0c;y是真实标签&#xff0c;p是预测标签&#xff0c;取值为0或1。 …