关于svn服务部署方案

本文只记录我的笔记

首先, 我是个懒人, 写好了shell, 直接上传把

安装包:SvnPackages-chenglee

第一, 无非就是搞掂依赖这一块

1
2
3
4
5
6
7
8
9
#*************************************************************************
#         > File Name: SuperRoot.sh
#         > Author: chenglee
#         > Main : chengkenlee@sina.com
#         > Blog : http://www.cnblogs.com/chenglee/
#         > Created Time : 2019年07月04日 星期四 20时43分25秒
#*************************************************************************
#!/bin/bash
yum -y install zlib zlib-devel openssl openssl-devel expat-devel gcc gcc-c++ cmake lrzsz bzip2

第二, 编译安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#*************************************************************************
#         > File Name: SvnInstall.sh
#         > Author: chenglee
#         > Main : chengkenlee@sina.com
#         > Blog : http://www.cnblogs.com/chenglee/
#         > Created Time : 2019年07月04日 星期四 20时46分03秒
#*************************************************************************
#!/bin/bash
ShowPath=$1
InstallPath="$ShowPath/svn"
ShellFoler=$(cd "$(dirname "$0")";pwd)
 
function cheng(){
    mkdir -p $InstallPath/lib
    tar -zxvf SvnPackages.tar.gz && cd SvnPackages && ll
}
function apr(){
    cd $ShellFoler/SvnPackages
    tar -zxvf apr-1.6.5.tar.gz && cd apr-1.6.5 && mkdir $InstallPath/lib/apr
    ./configure --prefix=${InstallPath}/lib/apr && make && make install
}
function apr-util(){
    cd $ShellFoler/SvnPackages
    tar -zxvf apr-util-1.6.1.tar.gz && cd apr-util-1.6.1 && mkdir $InstallPath/lib/apr-util
    ./configure --prefix=$InstallPath/lib/apr-util --with-apr=$InstallPath/lib/apr && make && make install
}
function scons(){
    cd $ShellFoler/SvnPackages
    tar -zxvf scons-2.3.2.tar.gz && cd scons-2.3.2 && mkdir $InstallPath/lib/scons
    python setup.py install --prefix=$InstallPath/lib/scons
}
function serf(){
    cd $ShellFoler/SvnPackages
    tar xf serf-1.3.9.tar.bz2 && cd serf-1.3.9 && mkdir $InstallPath/lib/serf
    $InstallPath/lib/scons/bin/scons PREFIX=$InstallPath/lib/serf APR=$InstallPath/lib/apr APU=$InstallPath/lib/apr-util && $InstallPath/lib/scons/bin/scons install && cp $InstallPath/lib/serf/lib/libserf-1.so* /lib64/
}
function svn(){
    cd $ShellFoler/SvnPackages
    tar -zxvf subversion-1.12.0.tar.gz && unzip sqlite-amalgamation-3280000.zip -d subversion-1.12.0 && cd subversion-1.12.0 && mv sqlite-amalgamation-3280000 sqlite-amalgamation
    ./configure --prefix=$InstallPath --with-apr=${InstallPath}/lib/apr --with-apr-util=$InstallPath/lib/apr-util --with-serf=$InstallPath/lib/serf --with-lz4=internal --with-utf8proc=internal --enable-mod-activation && make && make install
}
 
#********************************************#
#svnadmin create /home/svn/blog
#svnserve -d -r /home/svn
#********************************************#
 
function main(){
    cheng
    apr
    apr-util
    scons
    serf
    svn
    echo "Install Sucess!!"
(
cat <<EOF
#svn
export SVN_HOME=$InstallPath
export PATH=\$SVN_HOME/bin:\$PATH
EOF
) >> /etc/profile
    echo "Please Input 'source /etc/profile'"
}
main

使用方法是, 脚本+安装路径, 比如我要把svn安装到/usr/local下, 那么, 就是./install.sh /usr/local

如此简单

第三, 库问题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#*************************************************************************
#         > File Name: CreateRepo.sh
#         > Author: chenglee
#         > Main : chengkenlee@sina.com
#         > Blog : http://www.cnblogs.com/chenglee/
#         > Created Time : 2019年07月05日 星期五 09时29分10秒
#*************************************************************************
#!/bin/bash
 
RepoName=$1
RepoPath="/home/svn"
 
function create(){
    svnadmin create $RepoPath/$RepoName
    sleep 1;
    echo "create repo is success!"
}
function authz(){
(
cat <<EOF
[$RepoName:/]
$RepoName = rw
EOF
) >> $RepoPath/$RepoName/conf/authz
}
function passwd(){
    echo "$RepoName = 123456" >> $RepoPath/$RepoName/conf/passwd
}
function svnserve(){
    configfile="$RepoPath/$RepoName/conf/svnserve.conf"
    sed -i "s|# anon-access = read|anon-access = read|g" $configfile
    sed -i "s|# auth-access = write|auth-access = write|g" $configfile
    sed -i "s|# password-db = passwd|password-db = passwd|g" $configfile
    sed -i "s|# authz-db = authz|authz-db = authz|g" $configfile
}
function update(){
    authz
    passwd
    svnserve
    echo "update config is success!"
}
function restart(){
    ps aux | grep svnserve | grep -v grep | awk -F ' ' '{print$2}' | xargs kill -9
    sleep 1;
    #svnserve -d -r $RepoPath --log-file $RepoPath/SvnServer.log
    ./start.sh
    echo;
    echo;
    echo "Your RepoUrl is : [svn://IP/$RepoName]"
    echo "Your username and password  is : [$RepoName:123456]"
    echo;
    echo;
}
function main(){
    create
    update
    restart
}
main

这是一键创建库, 默认连接账号是你的库名, 默认连接密码是123456, 再简单不过了, 执行的方式是, 脚本 + 库名

别忘了, 后面要加库名

第四, 启动

1
2
3
4
5
6
7
8
9
10
11
#*************************************************************************
#         > File Name: start.sh
#         > Author: chenglee
#         > Main : chengkenlee@sina.com
#         > Blog : http://www.cnblogs.com/chenglee/
#         > Created Time : 2019年07月05日 星期五 10时16分38秒
#*************************************************************************
#!/bin/bash
RepoPath="/home/svn"
 
svnserve -d -r $RepoPath --log-file $RepoPath/SvnServer.log

到这里已经差不多搞掂了, 就是上面编译那一步耗费一点时间而已, 搭建这玩意5分钟之内搞掂, 精准

然后就是小乌龟连接的那一步了,

算了...

就这样把,,,

太简单, 过于讲解怕会扭曲意思。

 

posted @   扶苏公子x  阅读(489)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性

阅读目录(Content)

此页目录为空

点击右上角即可分享
微信分享提示