SVN搭建指导

环境

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.mzph.cn/news/235750.shtml

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

相关文章

c语言:指针作为参数传递

探究实参与形参它们相互独立 由于主调函数的变量a&#xff0c;b与被调函数的形参x&#xff0c;y它们相互独立。函数 swap 可以修改变量x&#xff0c;y&#xff0c;但是却无法影响到主调函数中的a&#xff0c;b。 现在利用取地址运算符&#xff0c;分别打印它们的首地址&#x…

生物识别规划人脸识别方案的概述

方案概述 人脸识别方案采用高性能AI芯片&#xff0c;支持RGB和IR摄像头&#xff0c; 支持LCD显示屏。方案特点 • 普通RGB摄像头和IR摄像头同时参与3D成像RGB摄像头 支持屏幕回显 • 双目摄像头得到特征点视差计算人脸相 对3D深度信息&#xff0c; 同时利用可见光和红外 光谱信…

Axure RP 8 for Mac/win中文版:打造完美交互式原型设计体验

Axure RP 8&#xff0c;一款引领潮流的交互式原型设计工具&#xff0c;为设计师提供了无限的可能性&#xff0c;让他们能够创造出逼真的原型&#xff0c;从而更好地展示和测试他们的设计。 Axure RP 8拥有丰富的功能和工具&#xff0c;让设计师可以轻松地创建出复杂的交互式原…

GSCoolink GSV1201E Type C/DP1.2转HDM1.4

DisplayPort 1.2 to HDMI 1.4 Converter with Embedded MCU 功能特征 1、GSV1201E是一款高性能、低功耗、USB Type-C Alternate Mode DisplayPort 1.2 to HDMI 1.4转换器。 2、显示接口接收器支持21.6Gbps(HBR2&#xff0c;4-lane)。 3、HDMI发射器支持9Gbps(TMDS3G3Lane)。…

Swagger2接口测试文档

目录 一、Swagger简介 1.1 Swagger是什么&#xff1f; 1.2 为什么要用Swagger 1.3 Swagger注解 二、Spring集成Swagger 三、测试环境配置 一、Swagger简介 1.1 Swagger是什么&#xff1f; Swagger是一款RESTFUL接口的文档在线自动生成功能测试功能软件。Swagger是一个规…

Linux之进程(五)(进程控制)

目录 一、进程创建 1、fork函数创建进程 2、fork函数的返回值 3、fork常规用法 4、fork调用失败的原因 二、进程终止 1、进程终止的方式 2、进程退出码 3、进程的退出方法 三、进程等待 1、进程等待的必要性 2、wait函数 3、waitpid函数 四、进程程序替换 1、概念…

Android studio中导入opencv库

具体opencv库的导入流程参考链接&#xff1a;Android Studio开发之路 &#xff08;五&#xff09;导入OpenCV以及报错解决 一、出现的错误&#xff1a;NullPointerException: Cannot invoke “java.io.File.toPath()” because “this.mySdkLocation” is null 解决办法&#…

java获取当前线程的上下文类加载器(context ClassLoader)

当前线程的上下文类加载器初始设置等于加载该应用的类加载器。 代码示例&#xff1a; package com.thb;public class Demo4 {public static void main(String[] args) {System.out.println(Thread.currentThread().getContextClassLoader());} }运行输出&#xff1a;

地质灾害监测预警解决方案

目录 1.前言 2.滑坡监测站建设方案 2.1建站方案 2.2监测指标体系 2.3监测设备配置 3.地面沉降监测建设方案 3.1建设方案 3.2监测指标体系 3.3监测设备配置 4.泥石流监测站建设方案 4.1建设方案 4.2监测指标体系 4.3监测设备配置 5.岩溶塌陷监测站方案 5.1建站方案…

深入理解网络 I/O:FileOutputStream、BufferFileOutputStream、ByteBuffer

&#x1f52d; 嗨&#xff0c;您好 &#x1f44b; 我是 vnjohn&#xff0c;在互联网企业担任 Java 开发&#xff0c;CSDN 优质创作者 &#x1f4d6; 推荐专栏&#xff1a;Spring、MySQL、Nacos、Java&#xff0c;后续其他专栏会持续优化更新迭代 &#x1f332;文章所在专栏&…

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

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

java并发-ConcurrentHashMap 在Java7 和 8 的区别

文章目录 1.Java 7 版本的 ConcurrentHashMap2.Java 8 版本的 ConcurrentHashMap3.分析 Java 8 版本的 ConcurrentHashMap 的重要源码3.1.Node 节点3.2.put 方法源码分析3.3.get 方法源码分析 4.对比 Java7 和 Java8 的异同和优缺点4.1.并发度4.2.保证并发安全的原理4.3.遇到 H…

Jmeter实现CSV数据批量导入

CSV&#xff1a;逗号分隔值&#xff0c;是一种简洁且常见的数据存储格式。 1、参数化&#xff1a; 在Jmeter中&#xff0c;可以通过“用户自定义的变量”来实现参数化使操作方便&#xff0c;使用语法位&#xff1a;${参数名}&#xff0c;如下图&#xff1a; 而CSV也同理&…

本地文件内容搜索神器AnyTXT Searcher如何搭建与远程访问

文章目录 前言1. AnyTXT Searcher1.1 下载安装AnyTXT Searcher 2. 下载安装注册cpolar3. AnyTXT Searcher设置和操作3.1 AnyTXT结合cpolar—公网访问搜索神器3.2 公网访问测试 4. 固定连接公网地址 前言 你是否遇到过这种情况&#xff0c;异地办公或者不在公司&#xff0c;想找…

java注意项--更新中

前言&#xff1a; 1.大小写规定 1.1.类名和接口名&#xff1a;每个单词首字母大写。如GoodStudent&#xff1b; 是一个单词的时候首字母大写。如Student&#xff1b; 1.2.变量和方法名&#xff1a;第一个首字母小写&#xff0c;后序首字母大写。如firstName&#xff1b; 是一…

vue的语法模板与数据绑定的说明

vue的两大模板语法&#xff1a; 1.插值语法 2.指定语法 插值语法&#xff1a;{{}} 功能&#xff1a;用于解析标签体的内容 写法&#xff1a;{{xxx}},xxx是js表达式,且可以直接读取到data中的所有属性 指定语法&#xff1a; 功能:用于解析标签(包括:标签属性、标…

ChatGPT助力Excel数据分析:让你的工作事半功倍!

文章目录 一、ChatGPT简介二、ChatGPT在Excel数据分析中的应用1. 数据清洗2. 数据处理3. 数据分析4. 数据可视化 三、如何使用ChatGPT进行Excel数据分析1. 安装ChatGPT插件2. 输入问题或命令3. 查看结果并调整参数4. 导出结果并分享四、总结与展望 《巧用ChatGPT高效搞定Excel数…

苹果cms论坛多播放源自动采集 /采集在线影视网站/苹果CMS影视站采集器

源码介绍&#xff1a; 苹果cms论坛多播放源自动采集、采集在线影视网站&#xff0c;作为苹果CMS影视站采集器&#xff0c;它能轻松获取在线影视网站资源。 苹果 cms 论坛这是一个基于Vue和Gin实现的在线观影网站。项目采用 vite vue 作为前端技术栈, 使用 ElementPlus 作为 …

el-select 全选

<template><div class"container"><el-selectv-model"choosedList"clearablemultiplecollapse-tagsplaceholder"请选择"change"select_Change"><div style"padding: 0 20px; line-height: 34px">&l…

JVM快速入门

JVM 字节码 字节码文件的组成 字节码由五个部分组成&#xff1a;基础信息 常量池 字段 方法 属性 基础信息&#xff1a; 魔数、字节码文件对应的版本号、访问标识&#xff08;public final&#xff09;、该类的父类索引、该类实现哪些接口的索引 魔数&#xff1a;文件无法…