SVN搭建指导

news2024/11/15 8:14:58

环境

centos 7.9

SVN安装方式一:yum

1.1 http服务

至今还没有搞定网页版,网页版需要搭建apache http服务。遇到如下问题:

 

centos - svn: Could not open the requested SVN filesystem - Stack Overflow

在试了加777权限,加apache属组无果后,苦战了很久才发现是我的selinux没有关闭。

setenforce 0  #临时关闭

vim /etc/sysconfig/selinux,SELINUX=disabled,然后保存退出。  #永久关闭

1.2 安装subversion服务

使用yum安装:

yum install subversion

1.3 安装sasl

SASL全称Simple Authentication and Security Layer,是一种用来扩充C/S模式验证能力的机制。

SASL是一个胶合库,通过这个库把应用层与形式多样的认证系统整合在一起。这有点类似于PAM,但是后者是认证方式,决定什么人可以访问什么服务,而SASL是认证过程,侧重于信任建立过程,这个过程可以调用PAM来建立信任关系。在这里Memcached就是上面提到的应用层,具体的认证交给SASL库,SASL会根据相应的认证机制来完成验证功能。用于后续ldap认证。

yum -y install *sasl*

二、SVN安装方式二:源码编译(用于离线安装)

网上有不少总结:https://www.cnblogs.com/wizzhangquan/p/4564089.html

https://www.cnblogs.com/hiyong/p/15890583.html

2.1 源码编译svn

所用到的包和版本:(一些基础工具也是要的,比如gcc,zlib等)

apr

1.4.8

apr-util

1.5.2

sqlite

3.7.17

subversion

1.8.0

svn,apr,apr-util下载地址:

Index of /dist/subversion 

https://archive.apache.org/dist/apr/

1)编译安装apr 1.4.8

wget https://archive.apache.org/dist/apr/apr-1.4.8.tar.gz

tar zxf apr-1.4.8.tar.gz

cd apr-1.4.8

./configure --prefix=/tools/misc/svn/apr-1.4.8

make && make install

如果报错:rm: cannot remove 'libtoolT': No such file or directory

解决方案: configure文件,注释掉 $RM "$cfgfile" ,然后重新编译安装。

2) 编译安装apr-util 1.5.2

wget https://archive.apache.org/dist/apr/apr-util-1.5.2.tar.gz

tar zxf apr-util-1.5.2.tar.gz

cd apr-util-1.5.2

./configure --prefix=/tools/misc/svn/apr-util-1.5.2 --with-apr=/tools/misc/svn/apr-1.4.8

make && make install

3) 编译安装sqlite3.7.17

由于当前centos机器下默认安装的是sqlite3.7.17版本sqlite3,所以在编译subversion需要指定该版本的sqlite3,如果指定了别的版本,运行时会报如下错误:

解决方法就是保持运行svn服务的机器上的sqlite3跟编译时是sqlite3保持一致。

也可以在运行svn的所有机器上都升级sqlite3并添加环境变量

export LD_LIBRARY_PATH=/tools/misc/sqlite3/lib
export PATH=/tools/misc/sqlite3/bin:$PATH

由于历史版本sqlite3没有找到源码包,所以到github上下载的源码,然后切到3.7.17版本进行编译安装。

git clone GitHub - sqlite/sqlite: Official Git mirror of the SQLite source tree

cd sqlite && git checkout version-3.7.17

./configure --prefix=/tools/misc/svn/sqlite3.7.17

make && make install

4) 编译安装subversion 1.8.0

wget https://archive.apache.org/dist/subversion/subversion-1.8.0.tar.gz

tar zxf subversion-1.8.0.tar.gz

cd subversion-1.8.0

./configure --prefix=/tools/misc/svn --with-apr=/tools/misc/svn/apr-1.4.8 --with-apr-util=/tools/misc/svn/apr-util-1.5.2 --with-sqlite=/tools/misc/svn/sqlite3.7.17 --with-lz4=internal --with-utf8proc=internal

make && make install

这样svn编译安装完成,将安装好的/tools/misc/svn拷贝到目标机器,并将/tools/misc/svn/bin加到当前path生效。

vi /etc/profile

export PATH=/tools/misc/svn/bin:$PATH

source /etc/profile

2.2 源码编译sasl

版本:2.1.26 (Releases · cyrusimap/cyrus-sasl · GitHub )

Cyrus-SASL 安装-CSDN博客

wget https://github.com/cyrusimap/cyrus-sasl/releases/download/cyrus-sasl-2.1.26/cyrus-sasl-2.1.26.tar.gz

tar zxf cyrus-sasl-2.1.26.tar.gz

cd cyrus-sasl-2.1.26

./configure --prefix=/tools/misc/cyrus-sasl

make && make install

三、SVN启动及配置

3.1 创建仓库

cd /var/www

svnadmin create Demo

3.2 启动svn服务

svnserve -d -r /var/www/svn --listen-port=3690 --log-file /var/www/svn.log &

3.3 配置LDAP

  • 修改认证方式

vi /etc/sysconfig/saslauthd

将MECH=pam 修改成MECH=ldap

  • 创建/etc/saslauthd.conf 文件,写入以下内容
    vi /etc/saslauthd.conf

ldap_servers: ldap://xxx.xxx.xx:389/

ldap_bind_dn: admin@company.com

ldap_password: xxxxx

ldap_search_base: dc=xxx,dc=com

ldap_filter: sAMAccountName=%U

注意如果用的是微软的Active Directory,应配置ldap_filter: sAMAccountName=%U

如果是openldap,则用:ldap_filter: uid=%U

  • 创建/etc/sasl2/svn.conf文件,写入以下内容
    vim /etc/sasl2/svn.conf

pwcheck_method: saslauthd

mech_list: PLAIN LOGIN

  • 重启saslauthd服务

systemctl restart saslauthd

  • 测试ldap认证是否配置成功

xioalildap用户名,123是密码。可以看到ldap配置没有问题

testsaslauthd -uxiaoli -p123

0: OK "Success."

  • 修改SVN svnserve.conf 配置文件

我的SVN仓库地址为/var/www/svn/Demo,所以服务器配置文件路径为/var/www/svn/Demo/conf/svnserve.conf

启用如下配置

vi /var/www/svn/Demo/conf/svnserve.conf

use-sasl = true 

注意:使用LDAP认证后,passwd就不再生效了。但是账户权限还是需要在authz中设置。LDAP Server只是验证用户在ldap server上是否存在,但不进行权限限制

  • 修改完svn 配置后需要重启svn

1.杀死svn 进程号

ps -ef|grep svnserve

kill -9 进程号

2.启动svn

svnserve -d -r /var/www/svn/ --listen-port=3690 --log-file /var/www/svn.log &

3.4 配置SVN仓库权限

cat /var/www/svn/Demo/conf/authz

[groups]

repo = li.xinliang,zhao.bb

rrepo = li.aa

[repo:/]

@repo = rw

@rrepo = r

上述权限表面 li.xinliang,zhao.bb 拥有 rw 读写权限;li.aa 用户拥有只读 r 权限

版本库目录格式:

[<版本库>:/项目/目录]

@<用户组> = <权限>

<用户名> = <权限>

svnserve.conf配置

anon-access = read    #匿名用户可读

auth-access = write   #授权用户可写

password-db = passwd  #使用哪个文件作为账号文件

authz-db = authz      #使用哪个文件作为权限文件

realm = /var/www/svn     #认证空间名,版本库所在目录

3.5 linux checkout命令

svn co svn://xx.xx.xx.xx/Demo --username test

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

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

相关文章

校园圈子交友系统,APP小程序H5,三端源码交付,支持二开!实名认证,大V认证,地图找伴,二手平台!

校园圈子交友系统&#xff0c;是属于自主定义开发的系统&#xff0c;内容有很多&#xff0c;先截取一些给大家看看&#xff0c;让大家更多的了解本系统&#xff0c;然后再做评价&#xff01; 校园后端下载地址&#xff1a;校园圈子系统小程序&#xff0c;校园拼车&#xff0c;校…

Pycharm 关闭控制台多余窗口详解(console)

文章目录 1 问题描述2 解决办法2.1 步骤1&#xff1a;编辑配置2.2 步骤2&#xff1a;使用 Python 控制台运行&#xff08;取消勾选&#xff09;2.3 验证&#xff1a;再次运行&#xff0c;多余窗口消失 1 问题描述 2 解决办法 2.1 步骤1&#xff1a;编辑配置 菜单路径&#xf…

【bug日记】如何切换jdk版本,如何解决java和javac版本不一致

背景 今天在安装jenkins后&#xff0c;使用java运行war包的时候&#xff0c;提示jdk1.8版本太低&#xff0c;需要提高版本&#xff0c;所以就需要切换jdk版本 解决 在用户变量中&#xff0c;首先更改了JAVA_HOME的地址为17的目录&#xff0c;发现javac的版本改为17了&#x…

云原生扫盲篇

What 云原生加速了应用系统与基础设施资源之间的解耦,向下封装资源以便将复杂性下沉到基础设施层;向上支撑应用,让开发者更关注业务价值 云原生是一种构建和运行应用程序的方法,也是一套技术体系和方法论. Cloud 表示应用程序位于云中而不是传统的数据中心Native表示应用程序从…

函数帧栈的创建和销毁(一)

目录 什么是函数栈帧 理解函数栈帧能解决什么问题 函数栈帧的创建和销毁 什么是栈 认识相关寄存器和汇编指令 相关寄存器 相关汇编命令 esp和ebp 解析函数栈帧的创建和销毁 学前补充 函数的调用堆栈 什么是函数栈帧 我们在写C 语言代码的时候&#xff0c;经常会把…

ThinkPad E550c

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据总结 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 例如&#xff1a;…

java8实战 lambda表达式、函数式接口、方法引用双冒号(中)

前言 书接上文&#xff0c;上一篇博客讲到了lambda表达式的应用场景&#xff0c;本篇接着将java8实战第三章的总结。建议读者先看第一篇博客 其他函数式接口例子 上一篇有讲到Java API也有其他的函数式接口&#xff0c;书里也举了2个例子&#xff0c;一个是java.util.functi…

2-高可用-负载均衡、反向代理

负载均衡、反向代理 upstream server即上游服务器&#xff0c;指Nginx负载均衡到的处理业务的服务器&#xff0c;也可以称之为real server,即真实处理业务的服务器。 对于负载均衡我们要关心的几个方面如下&#xff1a; 上游服务器配置&#xff1a;使用upstream server配置上…

mysql 23day DDL常用约束,数据类型

目录 数据库的四种语言常用约束&#xff08;DDL&#xff09;创建格式PRIMARY KEY&#xff1a;主键约束FOREIGN KEY&#xff1a;外键约束主键外键 联合测试开始测试 NOT NULL&#xff1a;非空约束UNIQUE&#xff1a;唯一约束DEFAULT&#xff1a;默认值约束zerofill 零填充auto_i…

vcomp140.dll丢失怎么办,vcomp140.dll丢失解决方法详解

在我多年的电脑使用经历中&#xff0c;我曾经遇到过一个非常棘手的问题&#xff0c;那就是vcomp140.dll丢失。这个问题让我苦恼了很久&#xff0c;但最终我还是找到了解决方法。今天&#xff0c;我想和大家分享一下我的经历&#xff0c;以及vcomp140.dll是什么&#xff0c;它丢…

AI创作系统ChatGPT商业运营网站系统源码,支持AI绘画,GPT语音对话+DALL-E3文生图

一、前言 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统&#xff0c;支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI创作Ch…

用全志R128复刻自平衡赛车机器人,还实现了三种不同的操控方式

经常翻车的朋友们都知道&#xff0c;能在翻车后快速摆正车身的车才是好车。 就像动画《四驱兄弟》中展现的那样&#xff0c;在比赛中需要跟着赛车一起跑圈&#xff0c;而且赛车如果被撞翻还需要重新用手扶正&#xff0c;所浪费的时间非常影响比赛结果。 如果小豪和小烈可以拥有…

[电子榨菜] js中的闭包closure

0.写在前面: 下学期就打算去实习了,这段时间要密集接收考试和面试的捶打,计网和软工就没有办法为大家继续贡献开源内容了,明年九月份之前的更新内容将会以前端,人工智能,和工程设计为基础, 很抱歉啦,不过我还是希望我这一年来的努力可以帮到一些人.虽然自己这一年过的浑浑噩噩…

Docker容器的优化和性能调优技巧

Docker已经成为了现代应用程序开发和部署的核心工具之一。然而&#xff0c;要确保Docker容器在生产环境中运行稳定、高效&#xff0c;需要一些优化和性能调优的技巧。本文将介绍一些关键的Docker容器优化和性能调优策略&#xff0c;并提供丰富的示例代码&#xff0c;以帮助大家…

【精简】mysql创建自定义函数 sql写法举例

一&#xff0c;举例的sql是查询 某个时间点某个币种的汇率 create function get_rate(idate date,CURRENCY varchar(32)) returns decimal(21,6) begin declare res decimal(21,6) default 1;selec rate into resfromt_exchangerate tewhere ratedate idateand CURRENCYID C…

Apache Pulsar 技术系列 - PulsarClient 实现解析

导语 Apache Pulsar 是一个多租户、高性能的服务间消息传输解决方案&#xff0c;支持多租户、低延时、读写分离、跨地域复制&#xff08;GEO replication&#xff09;、快速扩容、灵活容错等特性。同时为了达到高性能&#xff0c;低延时、高可用&#xff0c;Pulsar 在客户端也…

【Linux C | 文件I/O】文件的打开关闭 | open、creat、colse 函数

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; &#x1f923;本文内容&#x1f923;&a…

windows安装、基本使用vim

标题&#xff1a;windows安装、基本使用vim 1.下载并安装GVIM 百度网盘链接 提取码&#xff1a;2apr 进入安装界面&#xff0c;如下&#xff0c;勾选 其它都是默认即可 参考&#xff1b; 2.在powershell中使用vim 参考blog&#xff1a;window10安装vim编辑器 安装好后&…

SpringBoot+WebSocket

SpringBootWebSocket 1.导入依赖&#xff1a; -- Spring Boot 2.x 使用 javax.websocket-- Spring Boot 3.x 使用 jakarta.websocket<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId&g…

C# WPF上位机开发(业务主流程才是核心)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 前面我们说了很多的c# wpf编程技术&#xff0c;里面有控件&#xff0c;有绘图&#xff0c;有数据库&#xff0c;有多线程等技术。但是他们都属于实…