当前位置: 首页 > news >正文

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

相关文章:

  • c语言:求算数平均数|练习题
  • 机器学习之逻辑回归,一文掌握逻辑回归算法知识文集
  • 回归预测 | MATLAB实现SABO-LSTM基于减法平均优化器优化长短期记忆神经网络的多输入单输出数据回归预测模型 (多指标,多图)
  • 【HarmonyOS开发】ArkUI实现下拉刷新/上拉加载
  • drf知识--01
  • 隐藏通信隧道技术——防御SSH隧道攻击的思路
  • QT GUI代码大全(MainWindow, QFile, QPainter, QGraphicsItem/Scene/View)
  • SSH免密登录
  • leetcode 525. 连续数组(优质解法)
  • 使用包、Crate 和模块管理项目(下)
  • 性能压力测试--确保企业数字化业务稳健运行
  • 前端:NPM的介绍和使用
  • 杰发科技AC7840——在Eclipse环境下使用Jlink调试
  • SSM整合实战(Spring、SpringMVC、MyBatis)
  • 大模型赋能“AI+电商”,景联文科技提供高质量电商场景数据
  • 【跃迁之路】【463天】刻意练习系列222(2018.05.14)
  • CODING 缺陷管理功能正式开始公测
  • JavaSE小实践1:Java爬取斗图网站的所有表情包
  • PHP 的 SAPI 是个什么东西
  • PHP 小技巧
  • ReactNative开发常用的三方模块
  • spring boot 整合mybatis 无法输出sql的问题
  • Terraform入门 - 1. 安装Terraform
  • vue:响应原理
  • Vue小说阅读器(仿追书神器)
  • Yeoman_Bower_Grunt
  • 关于List、List?、ListObject的区别
  • 和 || 运算
  • 区块链共识机制优缺点对比都是什么
  • 如何设计一个微型分布式架构?
  • 如何在 Tornado 中实现 Middleware
  • 实战|智能家居行业移动应用性能分析
  • 手写一个CommonJS打包工具(一)
  • 因为阿里,他们成了“杭漂”
  • 赢得Docker挑战最佳实践
  • 原生Ajax
  • 怎么将电脑中的声音录制成WAV格式
  • 《TCP IP 详解卷1:协议》阅读笔记 - 第六章
  • 东超科技获得千万级Pre-A轮融资,投资方为中科创星 ...
  • 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解 ...
  • ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书
  • #鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行
  • #我与Java虚拟机的故事#连载05:Java虚拟机的修炼之道
  • #我与Java虚拟机的故事#连载07:我放弃了对JVM的进一步学习
  • #中国IT界的第一本漂流日记 传递IT正能量# 【分享得“IT漂友”勋章】
  • (8)Linux使用C语言读取proc/stat等cpu使用数据
  • (AngularJS)Angular 控制器之间通信初探
  • (C++17) std算法之执行策略 execution
  • (附源码)python房屋租赁管理系统 毕业设计 745613
  • (附源码)ssm经济信息门户网站 毕业设计 141634
  • (六)Hibernate的二级缓存
  • (十八)SpringBoot之发送QQ邮件
  • (新)网络工程师考点串讲与真题详解
  • (转)es进行聚合操作时提示Fielddata is disabled on text fields by default
  • (转)LINQ之路