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.rhkb.cn/news/221608.html

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

相关文章

泽攸科技┃扫描电镜技术原理及应用

扫描电镜&#xff08;Scanning Electron Microscope&#xff0c;简称SEM&#xff09;作为一种新型的多功能电子光学仪器&#xff0c;近几十年来在科学研究和工业应用中发挥了巨大的作用。其工作原理以及技术特点使其在生物学、医学、冶金学等多个学科领域都得到广泛应用&#x…

HP服务器idrac设置以及系统安装

HP服务器idrac设置以及系统安装 一、设置管理口的地址和密码1、HP服务器重新界面选择"F9"进入BIOS&#xff0c;设置iLo5(idrac)的IP和用户名密码。2、选择"系统配置"。3、选择"iLO 4"配置程序。4、网络选项是设置idrac管理口的地址&#xff0c;设…

Ubuntu上安装MySQL以及hive

Ubuntu上安装MySQL以及hive 一、安装MySQL1、更新软件源2、安装 MySQL3、启动 MySQL&#xff0c;并登录 MySQL4、关闭 MySQL 指令&#xff1a;5、修改登录密码6、关闭 mysql&#xff0c;然后重新进入 二、安装hive1、创建 hive 的数据库2、下载压缩包3、修改环境配置文件并激活…

ELFK日志收集

文章目录 第一章:ELK日志收集系统介绍日志收集重要性ELK介绍EFK介绍ELFK介绍ES部署Kibana部署第二章:Logstach日志收集Logstash介绍Logstash安装Logstash Input输入插件Logstash Filter过滤插件Logstash Output输出插件Input fileFilter mutatesplit示例add_field示例remove_…

Super访问父类成员

1 问题 当子类的成员变量或方法与父类同名时&#xff0c;可能模糊不清&#xff0c;应该怎么解决&#xff1f;如果子类重写了父类的某一个方法&#xff0c;我们又该怎么调用父类的方法&#xff1f; 2 方法 super调用成员属性&#xff1a; 当父类和子类具有相同的数据成员时&…

红日靶场-1

实战 &#xff5c; 记一次基础的内网Vulnstack靶机渗透一https://mp.weixin.qq.com/s/A3MIuT7RXTIIPNLjF42OTg 前言 kali一个nat网卡&#xff0c;模拟外网攻击机 win7一个nat网卡&#xff0c;一个VMnet 1网卡&#xff08;仅主机模式&#xff09;&#xff0c;模拟web服务器win2…

(04)vite 插件 plugins

文章目录 怎么使用插件vite官网和社区分别提供了许多vite 插件手写vite插件插件怎么命名插件什么时候执行插件引用场景控制可以使用的钩子 怎么使用插件 通过在vite.config.js中配置不同的插件使用 import { defineConfig } from "vite"; // 自定义插件 import myD…

机器学习之随机森林 python

随机森林是一种集成学习方法&#xff0c;它是由多个决策树组成的模型&#xff0c;其中每棵树都是随机生成的。随机深林包括两种主要类型&#xff1a;随机森林和极端随机树。 废话不说上代码 import numpy as np import matplotlib.pyplot as plt from sklearn.datasets import…

Git账户密码http方式的配置

Git账户密码http方式的配置 入门 git在提交时每次都需要输入密码和账号信息&#xff0c;可以将账号和密码进行持久化存储&#xff0c; 当git push的时候输入一次用户名和密码就会被记录&#xff0c; 不需要每次输入&#xff0c;提高效率&#xff0c;进行一下配置&#xff1…

2023_Spark_实验三十:测试Flume到Kafka

实验目的&#xff1a;测试Flume采集数据发送到Kafka 实验方法&#xff1a;通过centos7集群测试&#xff0c;将flume采集的数据放到kafka中 实验步骤&#xff1a; 一、 kafka可视化工具介绍 Kafka Tool是一个用于管理和使用Apache Kafka集群的GUI应用程序。 Kafka Tool提供了…

jmx_exporter安装

下载 wget https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.13.0/jmx_prometheus_javaagent-0.13.0.jar 创建jmx_exporter.yml文件 文件内容为&#xff1a; rules: - pattern: ".*" 配置tomcatpinter/apache-tomcat-8.5.38/bin/ca…

基于 Flink 的典型 ETL 场景实现方案

目录 1.实时数仓的相关概述 1.1 实时数仓产生背景 1.2 实时数仓架构 1.3 传统数仓 vs 实时数仓 2.基于 Flink 实现典型的 ETL 场景 2.1 维表 Join ■ 2.1.1 预加载维表 方案 1&#xff1a; 方案 2&#xff1a; ■ 2.1.2 热存储关联 ■ 2.1.3 广播维表 ■ 2.1.4 Tem…

解决腾讯云CentOS 6硬盘空间不足问题:从快照到数据迁移

引言&#xff1a; 随着数据的不断增加&#xff0c;服务器硬盘空间不足变成了许多运维人员必须面对的问题。此主机运行了httpd&#xff08;apache服务&#xff09;&#xff0c;提供对外web访问服务,web资源挂载在**/data/wwwroot目录下,http日志存放在/data/wwwlogs目录下&…

JavaWeb笔记之前端开发JavaScript

一、引言 1.1 简介 JavaScript一种解释性脚本语言&#xff0c;是一种动态类型、弱类型、基于原型继承的语言&#xff0c;内置支持类型。 它的解释器被称为JavaScript引擎&#xff0c;作为浏览器的一部分&#xff0c;广泛用于客户端的脚本语言&#xff0c;用来给HTML网页增加…

51单片机定时器

51单片机有两个16位定时器&#xff0c;今天复习了一下使用方法&#xff0c;发现当初刚开始学习51单片机时并没有记录&#xff0c;特此今天补上这篇博客。 下面是定时器的总览示意图&#xff0c;看到这个图就能想到定时器怎么设置&#xff0c;怎么开始工作。 第一步&#xff1a…

还在用nvm?来试试更快的node版本管理工具——fnm

前言 &#x1f4eb; 大家好&#xff0c;我是南木元元&#xff0c;热衷分享有趣实用的文章&#xff0c;希望大家多多支持&#xff0c;一起进步&#xff01; &#x1f345; 个人主页&#xff1a;南木元元 目录 什么是node版本管理 常见的node版本管理工具 fnm是什么 安装fnm …

【超详细】基于单片机控制的十字道路口交通灯控制

目录 最终效果 一、设计任务 二、设计报告 1 设计说明 1.1功能分析 1.1.1整体系统功能分析 1.1.2显示状态功能分析 1.1.3设置状态功能分析 1.1.4紧急状态功能分析 1.2方案比选 1.2.1车辆LED数码管倒计时显示板块 1.2.2车辆信号灯显示板块 1.2.3行人信号灯显示板块 …

高通平台开发系列讲解(SIM卡篇)SIM软件架构介绍

文章目录 一、SIM软件架构二、MMG SDI Task三、GSTK Task四、Simlock Task沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇文章将介绍SIM的相关组件。 SIM软件架构: SIM软件架构指的是与SIM卡(Subscriber Identity Module,订阅者身份模块)相关的软件系统设计和…

Web请求与响应

目录 Postman Postman简介 Postman的使用 请求 简单参数 实体参数 数组参数 集合参数 日期参数 Json参数 路径参数 响应 ResponseBody 统一响应结果 Postman Postman简介 postman是一款功能强大的网页调试与发送网页http请求的Chrome插件&#xff0c;常用于进行…

Python 爬虫之下载视频(一)

爬取某平台视频 文章目录 爬取某平台视频前言一、大致内容二、基本思路三、代码编写1.引入库2.前期准备3.获取视频标题和地址3.下载保存视频 总结 前言 今天写个从好K视频平台爬取正在播放的视频&#xff0c;并下载保存到本地。 注意&#xff1a;建议大家先看看我之前的比较简…