CentOs6.8离线安装svn,并设置自动更新

2023-05-16

CentOs6.8离线安装svn,并设置自动更新

      • 离线安装所需依赖
        • 离线安装 GCC,如果系统已经有 GCC 了,跳过这一步
          • 需要的 rpm 包
          • 安装顺序
        • 离线安装 openssl
          • 需要的代码
          • 编译
          • 设置环境变量
        • 离线安装 zlib
          • 需要的代码
          • 编译
      • 离线安装 svn
          • 需要的代码
          • 编译
      • 配置 svn
        • 建立 svn 版本库目录
        • 配置版本库
          • 配置 authz
          • 配置 passwd
          • 配置 svnserve.conf
        • 启动 svn 服务
      • 利用 svn 钩子 hooks/post-commit 实现代码自动部署
        • svn 服务器和 web 服务器是同一台机器
          • svn checkout 文件到 web 服务器部署目录
          • 配置 post-commit 文件
      • 测试自动更新

离线安装 svn,需要我们手动编译 svn,编译所需要的依赖有: gcc,openssl,zlib

终端依次输入下列命令,无法正确输出信息的依赖,则需要安装:

gcc -v:输出gcc版本信息
openssl version:输出openssl版本信息
find /usr -name zlib.pc:输出zlib.pc的路径

离线安装所需依赖

所需文件打包下载地址:https://download.csdn.net/download/lx_asymmetric/79837316

离线安装 GCC,如果系统已经有 GCC 了,跳过这一步

需要的 rpm 包
kernel-headers-2.6.32-642.el6.x86_64.rpm
libgomp-4.4.7-17.el6.x86_64.rpm
libstdc++-devel-4.4.7-17.el6.x86_64.rpm
mpfr-2.4.1-6.el6.x86_64.rpm
ppl-0.10.2-11.el6.x86_64.rpm
cloog-ppl-0.15.7-1.2.el6.x86_64.rpm
cpp-4.4.7-17.el6.x86_64.rpm
glibc-devel-2.12-1.192.el6.x86_64.rpm
glibc-headers-2.12-1.192.el6.x86_64.rpm
gcc-4.4.7-17.el6.x86_64.rpm
gcc-c++-4.4.7-17.el6.x86_64.rpm

下载地址:http://ftp.iij.ad.jp/pub/linux/centos-vault/6.8/os/x86_64/Packages

安装顺序
rpm -ivh kernel-headers-2.6.32-642.el6.x86_64.rpm
rpm -ivh libgomp-4.4.7-17.el6.x86_64.rpm
rpm -ivh libstdc++-devel-4.4.7-17.el6.x86_64.rpm
rpm -ivh mpfr-2.4.1-6.el6.x86_64.rpm
rpm -ivh ppl-0.10.2-11.el6.x86_64.rpm
rpm -ivh cloog-ppl-0.15.7-1.2.el6.x86_64.rpm
rpm -ivh cpp-4.4.7-17.el6.x86_64.rpm
rpm -ivh glibc-devel-2.12-1.192.el6.x86_64.rpm
rpm -ivh glibc-headers-2.12-1.192.el6.x86_64.rpm
rpm -ivh gcc-4.4.7-17.el6.x86_64.rpm
rpm -ivh gcc-c++-4.4.7-17.el6.x86_64.rpm

如果安装时提示已经安装过,不用管,继续安装下一个就行,在全部安装完之后,终端内输入:gcc -v,如果正常显示版本信息,gcc即安装成功。

离线安装 openssl

需要的代码
openssl-1.0.0t

下载地址:https://ftp.openssl.org/source/old/1.0.0/openssl-1.0.0t.tar.gz

编译
tar -zxvf openssl-1.0.0t.tar.gz
cd openssl-1.0.0t
./config -fPIC
make depend
make install

执行 config 的时候使用-fPIC 选项,使得编译出来的静态库具有重定位能力。生成一个动态库时需要指定-fPIC

设置环境变量

安装之后会在/usr/local 下生成一个 ssl 目录。
需要在/etc/profilePATH 中增加如下内容:

PATH=/usr/local/ssl/bin:/sbin/:$PATH:/usr/sbin
export PATH

安装完之后,终端内输入:openssl version,如果正常显示版本信息,openssl即安装成功。

离线安装 zlib

需要的代码
zlib-1.2.11.tar.gz

下载地址:https://zlib.net/fossils/zlib-1.2.11.tar.gz

编译
tar -xvzf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure
make
make install
cd /usr/local
ln -s zlib-1.2.11 zlib

安装完之后,终端内输入:find /usr -name zlib.pc,如果正常输出 zlib.pc 的路径,zlib即安装成功。

离线安装 svn

需要的代码
subversion-1.6.21.tar.gz
subversion-deps-1.6.21.tar.gz

下载地址:
https://archive.apache.org/dist/subversion/subversion-1.6.21.tar.gz
https://archive.apache.org/dist/subversion/subversion-deps-1.6.21.tar.gz

编译
tar zxvf subversion-1.6.21.tar.gz
tar zxvf subversion-deps-1.6.21.tar.gz #会自动解压到subversion-1.6.21下
cd subversion-1.6.21
./configure --with-openssl=/usr/local/ssl --with-zlib=/usr/local/zlib --without-serf
make
make install

安装完之后,终端内输入:svn --version,如果正常输出版本信息,svn即安装成功。

配置 svn

建立 svn 版本库目录

创建的时候先确保 /home/svn/repository 目录已经存在。

svnadmin create /home/svn/repository

执行完之后,/home/svn/repository/conf/目录下存在 3 个文件: authz、passwd、svnserve.conf

配置版本库

cd /home/svn/repository/conf
配置 authz

vim authz,编辑之后,切换到命令模式,输入wq保存后退出。

[groups]
# users 是组名,tester 是组员,可以写多个,用 "," 分隔.如 users = tester,admin
users = tester
#此配置文件采用“基于路径的授权”策略,中括号里指定路径,以下列出对各用户的授权。包括只读 r,读写 rw。没有列出的用户,则不允许访问。
[/]
# 这里的意思是 users 组的成员都有 rw 的权限,rw 是读写得权限,也可以写成 tester=rw,只赋予某一个用户有读写权限
@users = rw
# 这里 *= 如果不写的话,下一级目录的用户不具备继承关系,也就是没有读写的权限。
*=
配置 passwd

vim passwd,编辑之后,切换到命令模式,输入wq保存后退出。

[users]
# authz 的用户名对应起来,后面是用户密码
tester = 123456
配置 svnserve.conf

vim svnserve.conf,编辑之后,切换到命令模式,输入wq保存后退出。
注:原文件属性都是前面有#注释掉的,需要删除#。

anon-access = none          # 使非授权用户无法访问(read 改为 none)
auth-access = write           # 使授权用户有写权限
password-db = passwd    # 指明密码文件路径
authz-db = authz                # 访问控制文件

启动 svn 服务

启动服务,-d 指明以守护模式运行,svn 自动在 3690 端口监听。3690 是默认端口,可以使用–listen-port=或者–listen-host=来指定其它端口。-r 选项用来指定 svn 服务的根目录,这样用户就可以使用相对路径访问,而不用提供完整路径。

svnserve –d –r /home/svn/repository/

注:停止服务使用命令killall svnserve

利用 svn 钩子 hooks/post-commit 实现代码自动部署

svn 服务器和 web 服务器是同一台机器

svn checkout 文件到 web 服务器部署目录

在这之前,已经在svn仓库里上传了 hec 项目。
web 项目部署目录:/home/weblogic/user_projects/domains/uat_domain/HECUAT

cd /home/weblogic/user_projects/domains/uat_domain/HECUAT
svn co svn://127.0.0.1/hec

会提示输入账户和密码,并询问是否保存密码。选择保存密码。

配置 post-commit 文件

创建post-commit,修改权限。

cd /home/svn/repository/hooks
cp post-commit.tmpl post-commit
chmod +x post-commit

vim post-commit,编辑之后,切换到命令模式,输入wq保存后退出。

#!/bin/bash
REPOS="$1"
REV="$2"
LOGFILE=/home/weblogic/svn/logs/svn.log
exec 1>>"$LOGFILE"
exec 2>&1
export  LC_CTYPE="zh_CN.GBK"
export  LC_ALL=
SVNLOOK=svnlook
TIME=$(date "+%Y-%m-%d %H:%M:%S")
AUTHOR=$($SVNLOOK author -r $REV "$REPOS")
CHANGEDDIRS=$($SVNLOOK dirs-changed $REPOS)
MESSAGE=$($SVNLOOK log -r $REV "$REPOS")

function myecho() {
    echo "$TIME" "$*"
}

myecho "**************************************************************"
myecho "提交版本:$REV 作者:$AUTHOR"
myecho "提交备注:$MESSAGE"
myecho "修改目录:$(echo $CHANGEDDIRS | tr '\n' ' ')"

MASTERDIR=$(echo "$CHANGEDDIRS" | head -1)

PROJECT=$(echo $MASTERDIR | awk -F / '{print $1}')

if [ "$PROJECT" == "uathec_online" ];then
    myecho "项目:$PROJECT 同步目录:$MASTERDIR"
    svn up /home/weblogic/user_projects/domains/uat_domain/HECUAT/hec/
fi

切换为 web 服务器的用户,执行 sh post-commit,如果没有提示错误,即为 OK,如果提示错误,重新执行sh -x post-commit,可看到详细报错(一般报错都是账户密码问题,或者文件格式问题)。
注:

  • 如果在上一步没有选择保存密码,需要修改 post-commit 里的svn up /home/weblogic/user_projects/domains/uat_domain/HECUAT/hec/svn up /home/weblogic/user_projects/domains/uat_domain/HECUAT/hec/ --username svn账户 --password svn密码

  • windows 下编辑的文件,放在 linux 下运行,文件格式有问题,需要转换,用 vim 打开 post-commit,输入 :set fileformat=unix 并回车,然后保存退出。

测试自动更新

提交一次代码,如果没有提示 post-commit 相关的错误,即为成功。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CentOs6.8离线安装svn,并设置自动更新 的相关文章

  • macos13 Ventura虚拟机安装无网络问题

    关键 xff1a 打开虚拟机所在文件夹 xff0c 修改vmx文件 xff0c 将 ethernet0 virtualDev 61 34 e1000e 34 改为 ethernet0 virtualDev 61 34 vmxnet3 34
  • 超2周没更新archlinux 更新报错

    报错信息 span class token punctuation span span class token number 448 span 448 span class token punctuation span 正在检查密钥环里的密
  • 2023安装archlinux笔记

    本文只是个笔记 xff0c 不是详细教程 xff0c 仅供参考 安装过程基本与 2021年vmware安装archlinux https blog csdn net lxyoucan article details 115226297 差不
  • 命令行临时关闭Hyper-V功能

    背景 安装VMware时有如下提示 xff1a 命令行关闭Hyper V功能 xff08 1 xff09 以管理员身份 xff08 win 43 x xff09 运行命令提示符 xff1b xff08 2 xff09 执行命令 xff1a
  • debian安装ssh服务

    安装 span class token function apt get span span class token function install span openssh server 安装完成以后 可以通过以下命令看到它们运行的进程
  • kitty 终端使用ssh

    我的主要终端软件就是使用kitty 但是在kitty中直接使用ssh时会有一些小问题 比如 xff1a ranger htop这类的在命令行中的 图形 软件打开会报错 Error opening terminal xterm kitty c
  • archlinux 罗技K380 F1-F12 功能键锁定

    在windows中罗技K380可以安装Logitech Options来实现这个Fn锁定功能 在linux中如何实现 Logitech Options中没有linux版本的 有开发者针对罗技的无线设备开发了Solaar软件 xff0c 可以
  • linux中的图形化UDP调试工具

    sokit freeware version 1 3 1 GPLv3 website https github com sinpolib sokit 这是一个TCP UDP数据包收发和传输工具 linux汉化 默认是英文版本的 xff0c
  • UDP内网穿透实战

    场景 最近的项目在做设备对接功能 设备对接协议使用的是UDP协议的 设备在客户那 因为设备太昂贵搬过来不现实 驻场开发又太麻烦了 所以就只能在远程桌面中开发 远程桌面中开发束手束脚的太麻烦了 所以想到了内网穿透 tcp协议的穿透经常玩 UD
  • sqlserver数据库备份与还原的几种方式

    在开发与运维的过程中 xff0c 数据的备份与还原是经常用到的 今天就说说我在sqlserver中常用的几个方法 xff0c 仅供参考 SQL Server Management Studio备份与还原 这种方法在开发环境中经常使用 xff
  • MySQL必知必会系列一:数据库老师没教过的数据库知识!!!

    在讲MySQL之前 xff0c 关于数据库有一个非常有意思的现象 xff1b 许多人认为MySQL或者Oracle等 xff0c 都等同于数据库 xff0c 这是不正确的 xff0c 准确来说它们是DBMS Database Managem
  • archlinux docker配置php5.3

    一直在维护一下10年前的老项目 xff0c 是基于php5 3开发的 一直在使用windows虚拟机在开发php5 3 最近就想尝试在archlinux主系统中开发 什么是php PHP 是一种广泛使用的通用脚本语言 xff0c 特别适合
  • IDEA中安装了lua插件后无法启动的解决办法

    现象 使用Idea编辑lua脚本 xff0c 根据提示安装了相关插件 安装完成后 xff0c 发现idea无法正常启动了 报错如下 2023 03 10 13 45 00 952 812 ERROR llij ide plugins Plu
  • Go 国内加速镜像

    Go 默认下载太慢了 xff0c 还老是timeout 有不有什么解决办法呢 xff1f linux 下面使用方法 启用 Go Modules 功能 go env w GO111MODULE 61 on 配置 GOPROXY 环境变量 xf
  • go打包成linux程序

    看到一个不错的的go开源项目 xff0c https github com antonmedv countdown 但是它只提供源码 xff0c 用起来不太方便 我在本地搭建了一下GO的运行环境 xff0c 每次运行程序都要 go run
  • Can‘t open /run/atd.pid to signal atd. No atd running?

    现象 echo 34 notify send 39 Stop it and go home now 39 39 Enough work for today 39 u critical 34 at now 13 27 33 warning c
  • 转换 nvarchar 值 ‘201201013201201013201201013‘ 时溢出了整数列

    现象 执行 select from lx stuinfo where lx stuinfo stunu 61 202202002 报错如下 xff1a 消息 248 xff0c 级别 16 xff0c 状态 1 xff0c 第 2 行 转换
  • RuoYi若依项目部署实战

    环境 OS Amazon Linux 2 x86 64Host c5 2xlargeKernel 5 10 173 154 642 amzn2 x86 64 mysql root密码为yourpasswd 64 2023 xff0c 数据库
  • linux C++ hello world

    我是Java程序员 xff0c 没怎么写过C 43 43 以前在windows下使用vs写过hello world 最近有个程序需要使用C 43 43 实现 我想在linux下写 xff0c 记录一下过程 安装gcc 查看gcc版本 gcc
  • mybatis foreach 批量删除 传两个参数

    需求 foreach中要传两个参数 xff0c 一个是id xff0c 一个是list 怎么传呢 xff1f 单list的情况 Mapper java span class token comment 批量删除 64 param teamL

随机推荐

  • ubuntu22.04 dlopen(): error loading libfuse.so.2

    报错如下 navicat16 premium cs AppImage dlopen error loading libfuse so 2 AppImages require FUSE to run You might still be ab
  • Android DataBinding在Activity、Fragment中的使用及数据共享

    本篇记录Activity Fragment使用DataBinding的不同方式 xff0c 以及Activity下的不同Fragment间的数据共享 开启DataBinding 首先我们要在app gradle中开启DataBinding
  • IDEA mybatis Mapper.xml报红的解决办法

    现象 在IDEA中已经配置好Database了 xff0c 但是打开mybatis的Mapper xml中的字段还是报红 如下 xff1a 随便不影响程序运行 xff0c 但是非常的不舒服 智能提示也不好用 解决办法 File gt Set
  • Windows 2008 R2 Server远程无法复制的解决办法

    结束进程rdpclip exe运行中重新运行rdpclip exe 两步完美解决 参考 https bbs huaweicloud com blogs 307039
  • WinScp密钥登录

    使用密码登录非常的方便 xff0c 但是有的客户的云服务器上是限定只能通过密钥登录 我一般使用命令行的scp命令就可以正常上传 xff0c 但是对于我一些同事来说 xff0c 就很不方便 生成密钥 这个不难 xff0c 可以参考我之前的文章
  • FileZilla密钥登录

    使用密码登录非常的方便 xff0c 但是有的客户的云服务器上是限定只能通过密钥登录 我一般使用命令行的scp命令就可以正常上传 xff0c 但是对于我一些同事来说 xff0c 就很不方便 生成密钥 这个不难 xff0c 可以参考我之前的文章
  • node js 设置淘宝源

    淘宝镜像源最新地址 span class token function npm span config span class token builtin class name set span registry https registry
  • 手推DNN,CNN池化层,卷积层反向传播

    反向传播算法是神经网络中用来学习的算法 xff0c 从网络的输出一直往输出方向计算梯度来更新网络参数 xff0c 达到学习的目的 xff0c 而因为其传播方向与网络的推理方向相反 xff0c 因此成为反向传播 神经网络有很多种 xff0c
  • 软件架构概念和面向服务的架构

    摘要 软件架构作为软件开发过程的一个重要组成部分 xff0c 有着各种各样的方法和路线图 xff0c 它们都有一些共同的原则 基于架构的方法作为控制系统构建和演化复杂性的一种手段得到了推广 引言 在计算机历史中 xff0c 软件变得越来越复
  • 初识强化学习,什么是强化学习?

    相信很多人都听过 机器学习 和 深度学习 但是听过 强化学习 的人可能没有那么多 那么 什么是强化学习呢 强化学习是机器学习的一个子领域 它可以随着时间的推移自动学习到最优的策略 在我们不断变化的纷繁复杂的世界里 从更广的角度来看 即使是单
  • 强化学习形式与关系

    在强化学习中有这么几个术语 智能体 Agent 环境 Environment 动作 Action 奖励 Reward 状态 State 有些地方称作观察 Observation 奖励 Reward 在强化学习中 奖励是一个标量 它是从环境中
  • 多层网络和反向传播笔记

    在我之前的博客中讲到了感知器 xff08 感知器 xff09 xff0c 它是用于线性可分模式分类的最简单的神经网络模型 xff0c 单个感知器只能表示线性的决策面 xff0c 而反向传播算法所学习的多层网络能够表示种类繁多的非线性曲面 对
  • 如何准备校招?

    秋招已经落尽尾声 xff0c 今天小牛想把自己的学习经验分享给大家 xff0c 避免大家多走弯路 1 首先需要确定自己想从事哪方面的工作 比如服务端开发 xff08 Java开发工程师 xff0c C 43 43 开发工程师 xff09 x
  • 在Kaggle手写数字数据集上使用Spark MLlib的朴素贝叶斯模型进行手写数字识别

    昨天我在Kaggle上下载了一份用于手写数字识别的数据集 xff0c 想通过最近学习到的一些方法来训练一个模型进行手写数字识别 这些数据集是从28 28像素大小的手写数字灰度图像中得来 xff0c 其中训练数据第一个元素是具体的手写数字 x
  • 在Kaggle手写数字数据集上使用Spark MLlib的RandomForest进行手写数字识别

    昨天我使用Spark MLlib的朴素贝叶斯进行手写数字识别 xff0c 准确率在0 83左右 xff0c 今天使用了RandomForest来训练模型 xff0c 并进行了参数调优 首先来说说RandomForest 训练分类器时使用到的
  • PyTorch模型保存与加载

    torch save xff1a 保存序列化的对象到磁盘 xff0c 使用了Python的pickle进行序列化 xff0c 模型 张量 所有对象的字典 torch load xff1a 使用了pickle的unpacking将pickle
  • Ubuntu18.04 上 安装微信(Deepin-Wechat)

    文章目录 一 安装Deepin Wine环境二 安装Deepin 版微信 微信什么时候支持在linux下的安装包啊 xff0c 我的天哪 xff0c 感觉受到了针对 xff0c 各位看官且看下图 xff1a 这里先作声明 xff1a 本文的
  • ROS机器人操作系统——ROS介绍

    AI is the new electricity 1 ROS发展史 本世纪开始 关于人工智能的研究进入了大发展阶段 包括全方位的具体的AI 例如斯坦福大学人工智能实验室STAIR Stanford Artificial Intellige
  • 如何快速学习一门计算机语言

    一 4步掌握一门计算机语言 1 学习语言的语法 xff0c 关键字 xff0c 以及基本的库 xff08 基础阶段 xff09 2 学习语言的第三方库和各个组件 xff08 OS xff0c 数据库 xff0c 网络 xff09 之间的连用
  • CentOs6.8离线安装svn,并设置自动更新

    CentOs6 8离线安装svn xff0c 并设置自动更新 离线安装所需依赖离线安装 GCC xff0c 如果系统已经有 GCC 了 xff0c 跳过这一步需要的 rpm 包安装顺序 离线安装 openssl需要的代码编译设置环境变量 离