本文只记录我的笔记

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

安装包:SvnPackages-chenglee

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

#*************************************************************************
# > 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

第二, 编译安装

#*************************************************************************
# > 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

如此简单

第三, 库问题

#*************************************************************************
# > 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, 再简单不过了, 执行的方式是, 脚本 + 库名

别忘了, 后面要加库名

第四, 启动

#*************************************************************************
# > 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分钟之内搞掂, 精准

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

算了...

就这样把,,,

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

关于svn服务部署方案的更多相关文章

  1. jenkins+gitlab自动化编译部署方案探索及服务端编译webpack实战

    一. 背景 之前我们的开发流程为在本地进行webpack打包编译,然后svn提交源代码和编译后的代码.同时每次提交前也会从svn更新源代码和编译后的代码.这样做有几个缺点: 1. svn 更新和提交编 ...

  2. Linux简单部署svn服务

    最近需要练习一下svn的命令行使用方法,以便编写自动化部署的脚本,但是不敢用正式的svn库进行练习,所以自己部署了一个svn服务,用来练习 1.安装svn server 我用的是ubuntu $apt ...

  3. Linux环境下部署svn服务详解

    说明 环境: 操作系统:centos 8.0 IP:39.100.228.13 安装 用ROOT账号登录,在控制台执行以下命令,一直默认安装就好可以了. [root@localhost ~]#yum ...

  4. Devops 开发运维高级篇之Jenkins+Docker+SpringCloud微服务持续集成——部署方案优化

    Devops 开发运维高级篇之Jenkins+Docker+SpringCloud微服务持续集成--部署方案优化 之前我们做的方案部署都是只能选择一个微服务部署并只有一台生产服务器,每个微服务只有一个 ...

  5. svn服务器 备份,迁移,部署方案

    这次做业务迁移,要从一个云厂商迁移到某云厂商,之前每天到全备svn排到用场了,需要搭建一个全新到svn服务并要做迁移,并实现我们开发机到时时代码同步 一.svn备份有很多种,优劣都不同,百度可查,我采 ...

  6. [环境部署] Linux搭建SVN服务器之Centos篇

    使用 service iptables stop 关闭防火墙 安装步骤如下: 1.yum install subversion2.输入rpm -ql subversion查看安装位置,如下:rpm - ...

  7. 私有化轻量级持续集成部署方案--03-部署web服务(上)

    提示:本系列笔记全部存在于 Github, 可以直接在 Github 查看全部笔记 这一篇主要讲述部署一个 Web 项目,项目是我曾经搞的一个 VUE 模板项目:https://github.com/ ...

  8. spring boot 自动部署方案

    现在主流的自动部署方案大都是基于Docker的了,但传统的自动部署方案比较适合中小型公司,下面的方案就是比较传统的自动部署方案. 1.为什么需要自动部署 基于微服务的架构,自动部署显得非常重要.因为每 ...

  9. Jenkins spring boot 自动部署方案

    原文地址:http://www.cnblogs.com/skyblog/p/5632869.html 现在主流的自动部署方案大都是基于Docker的了,但传统的自动部署方案比较适合中小型公司,下面的方 ...

随机推荐

  1. 【全面解禁!真正的Expression Blend实战开发技巧】第九章 FluidMoveBehavior完全解析之二平滑运动的滚动条

    原文:[全面解禁!真正的Expression Blend实战开发技巧]第九章 FluidMoveBehavior完全解析之二平滑运动的滚动条 这一章讲解FluidMoveBehavior的另一个应用, ...

  2. delphi 操作xml示例(DelphiBBS)

    自:http://www.delphibbs.com/keylife/iblog_show.asp?xid=20713 ======================================== ...

  3. python脚本,重新设置图片大小

    最近在做一个android的电台,此android程序要访问自己服务器上的歌曲文件,包括图片.这些文件要自己手动上传. 每天十首歌,需要二十个图片(一个大图450*450.一个小图140*140). ...

  4. LINQ查询表达式---------join子句

    LINQ查询表达式---------join子句 join 子句接受两个源序列作为输入. 每个序列中的元素都必须是可以与另一个序列中的相应属性进行比较的属性,或者包含一个这样的属性. join子句使用 ...

  5. 用VS2010构建MASM的编程环境,开始使用MASM(翻译自《Inetl汇编语言程序设计》一书的作者Kip R. Irvine的文章Getting Started with MASM),两种方法搭建IA-32汇编设计环境

    http://blog.csdn.net/jinsonghu/article/details/5688020 http://blog.csdn.net/jinsonghu/article/detail ...

  6. 领域驱动设计(DDD)的实践经验分享之持久化透明

    原文:领域驱动设计(DDD)的实践经验分享之持久化透明 前一篇文章中,我谈到了领域驱动设计中,关于ORM工具该如何使用的问题.谈了很多我心里的想法,大家也对我的观点做了一些回复,或多或少让我深深感觉到 ...

  7. win10应用开发——如何判断应用是在手机上运行还是电脑上运行

    原文:win10应用开发--如何判断应用是在手机上运行还是电脑上运行 在进行uwp应用开发的时候, 有时我们需要知道自己的应用是在手机端运行还是在桌面端运行,那么通过以下的api就可以进行判断: Wi ...

  8. cairo 图形库

    简介 提到cairo,估计很少知道这还是一个图形库的名字(http://cairographics.org),Linux的两大流行桌面环境KDE和Gnome,其对应的基础组件是QT和GTK+,相对于框 ...

  9. 程序的开机关机重启,开机启动,休眠功能delphi实现(使用AdjustTokenPrivileges提升权限)

    TShutDownStatus = (sdShutDown,sdReboot,sdLogOff,sdPowerOff); procedure ShutDown(sdStatus : TShutDown ...

  10. CS224n笔记一:开端

    何为自然语言处理 自然语言处理的目标是让计算机处理或者"理解"自然语言,以完成有意义的任务,如QA等. 自然语言处理涉及的层次 输入有两个来源:语音和文本,所以第一级是语音识别,O ...