SVN(独立安装)-1.9.7 centos 6.5(64位)
说明:
运行方式:
- 基于Apache的http、https网页访问形式;
- 基于svnserve的独立服务器模式。
数据存储方式:
- 在Berkeley DB数据库中存储数据;
- 使用普通的文件FSFS存储数据。
由于Berkeley DB方式在使用中有可能锁住数据,一般建议使用FSFS方式更安全.
以svnserve的独立服务器模式,使用FSFS数据存储方式源码编译安装配置SVN服务器。
一、开启防火墙端口
#基于svnserve的独立服务器模式,默认端口为3690
#编辑防火墙配置文件
vi /etc/sysconfig/iptables
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
#保存退出
:wq!
#最后重启防火墙使配置生效
service iptables restart
二、关闭SELINUX
vi /etc/selinux/config
#注释掉
#SELINUX=enforcing
#注释掉
#SELINUXTYPE=targeted
#增加
SELINUX=disabled
#保存退出
:wq!
#使配置立即生效
setenforce 0
系统约定
- 软件源代码包存放位置:/usr/local/src
- 源码包编译安装位置: /usr/local/软件名字
四、下载软件包
- apr源码包 网站:http://archive.apache.org/dist/apr/apr-1.5.2.tar.gz
- apr-util源码包 网站:http://archive.apache.org/dist/apr/apr-util-1.5.4.tar.gz
- sqlite-amalgamation源码包 网站:http://www.sqlite.org/2017/sqlite-amalgamation-3160200.zip
- scons源码包 网站:https://sourceforge.net/projects/scons/files/scons/2.5.1/scons-2.5.1.tar.gz/download
- serf源码包 网站:https://www.apache.org/dist/serf/serf-1.3.9.tar.bz2
- 下载svn 网站:http://www.apache.org/dist/subversion/subversion-1.9.7.tar.gz
五、安装编译工具及库文件(使用yum命令安装)
#!/bin/bash
yum install -y apr* autoconf automake bison bzip2 bzip2* cloog-ppl compat* cpp \
curl curl-devel fontconfig fontconfig-devel freetype freetype* \
freetype-devel gcc gcc-c++ gtk+-devel gd gettext gettext-devel \
glibc kernel kernel-headers keyutils keyutils-libs-devel krb5-devel \
libcom_err-devel libpng libpng* libpng-devel libjpeg* libsepol-devel \
libselinux-devel libstdc++-devel libtool* libgomp libxml2 libxml2-devel libXpm* libX* \
libtiff libtiff* make mpfr ncurses* ncurses-devel ntp openssl openssl-devel nasm nasm* \
openssl-devel patch pcre-devel perl php-common php-gd \
policycoreutils ppl telnet t1lib t1lib* wget zlib-devel gmp-devel \
unzip perl-ExtUtils-Embed
#删除系统中原有的svn及依赖包
yum -y remove apr apr-util subversion subversion-libs
#安装apr
cd /usr/local/src/install_file
mkdir /usr/local/apr
tar zxvf apr-1.5.2.tar.gz -C /usr/local/src
cd /usr/local/src/apr-1.5.2
./configure --prefix=/usr/local/apr
make && make install
#安装apr-util
cd /usr/local/src/install_file
mkdir /usr/local/apr-util
tar zxvf apr-util-1.5.4.tar.gz -C /usr/local/src
cd /usr/local/src/apr-util-1.5.4
./configure --prefix=/usr/local/apr-util \
--with-apr=/usr/local/apr
make && make install
#安装scons
cd /usr/local/src/install_file
mkdir /usr/local/scons
tar zxvf scons-2.5.1.tar.gz -C /usr/local/src
cd /usr/local/src/scons-2.5.1
python setup.py install --prefix=/usr/local/scons
yum -y install openssl-devel
#安装serf
cd /usr/local/src/install_file
mkdir /usr/local/serf
tar xvf serf-1.3.9.tar.bz2 -C /usr/local/src
cd /usr/local/src/serf-1.3.9
/usr/local/scons/bin/scons PREFIX=/usr/local/serf APR=/usr/local/apr APU=/usr/local/apr-util
/usr/local/scons/bin/scons install
#拷贝文件到系统目录
cp /usr/local/serf/lib/libserf-1.so* /usr/local/lib/
#安装svn
cd /usr/local/src/install_file
tar zxvf subversion-1.9.7.tar.gz -C /usr/local/src
unzip sqlite-amalgamation-3160200.zip -d /usr/local/src/subversion-1.9.7/
cd /usr/local/src/subversion-1.9.7
mv sqlite-amalgamation-3160200 sqlite-amalgamation
./configure --prefix=/usr/local/svn \
--with-apr=/usr/local/apr \
--with-apr-util=/usr/local/apr-util \
--with-serf=/usr/local/serf \
--enable-mod-activation
make && make install
cp /usr/local/lib/libserf-1.so.1.3.0 /usr/local/svn/lib/libserf-1.so.1
#添加系统环境变量,添加到最后一行
echo "export PATH=$PATH:/usr/local/svn/bin">>/etc/profile
#使配置立刻生效
source /etc/profile
测试安装是否成功:
#查看svn帮助信息
svn help
#查看svn版本信息
svnserve --version
#查看svn
svn --version
配置svn
#创建svn代码库
mkdir -p /data/repos #创建目录
#下面的命令执行完成之后,会自动建立svn库,在/home/svn文件夹含了conf,db,format,hooks,locks,README.txt等文件。
#创建svn代码库
svnadmin create /data/repos
#配置svn代码库
#进入配置文件存放目录
cd /data/repos/conf
#配置全局文件,在最后添加以下代码
vi /data/repos/conf/svnserve.conf
[general]
#禁止匿名访问,设置为none。默认为read,参数:read,write,none
anon-access=none
#授权用户写权限
auth-access=write
#用户账号密码文件路径,可以写绝对路径
password-db=passwd
#访问控制权限文件路径,可以写绝对路径
authz-db=authz
#每个SVN项目的认证命,会在认证提示里显示,建议写项目名称。
realm=repos
#保存退出
:wq!
#配置用户密码
vi /data/repos/conf/passwd
[users]
# harry = harryssecret
# sally = sallyssecret
test=123456
#保存退出
:wq!
#配置权限控制文件,设置用户可以访问的目录
vi /data/repos/conf/authz
[groups]
admin = osyunwei
users = test,test2
#[/]代表根目录下所有的资源
[/]
@admin = rw
* = r
#保存退出
:wq!
#启动svn
svnserve -d -r /home/svn --listen-port 3690
#查看svn进程
ps -ef|grep svn|grep -v grep
#检查svn端口
netstat -ln |grep 3690
#关闭svn服务
killall svnserve
#设置svn服务开机启动
vi /etc/init.d/svn #编辑,添加以下代码
svn文件内容如下
#!/bin/sh
# chkconfig: 2345 85 85
# processname: svn
svn_port=3690
svn_home=/data/repos
if [ ! -f "/usr/local/svn/bin/svnserve" ]
then
echo "svnserver startup: cannot start"
exit
fi
case "$1" in
start)
echo "Starting svnserve..."
/usr/local/svn/bin/svnserve -d -r $svn_home --listen-port $svn_port
echo "Successfully!"
;;
stop)
echo "Stoping svnserve..."
killall svnserve
echo "Successfully!"
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage: svn { start | stop | restart } "
exit 1
esac
开启自启动
#添加执行权限
chmod +x /etc/init.d/svn
#开启自启动
chkconfig svn on
service svn start
测试svn
#测试svn
#将文件下载到本地目录
svn://192.168.21.134/
username osyunwei
password 123456
实现svn代码仓库与web线上同步
svn代码仓库目录/data/repos/
web线上目录/data/www
#服务器操作系统:CentOS
#服务器IP:192.168.21.134
#SVN安装路径:/usr/local/svn
#SVN项目路径:/data/repos
#SVN登录账号:test
#SVN登录密码:123456
#Web站点根目录:/data/www
#首先checkout一份
svn co svn://192.168.1.149/ /data/www
#当svn项目中有任何修改更新时,系统会自动实时从svn中检出文件并同步到Web站点根目录
#使用SVN中post-commit实现自动实时从svn中检出文件并同步到Web站点根目录
cd /data/repos/hooks
#编辑,添加以下代码
vi /data/repos/hooks/post-commit
#!/bin/sh
REPOS="$1"
REV="$2"
SVN_PATH=/usr/local/svn/bin
WEB_PATH=/data/www
SVN_USER=test
SVN_PASS=123456
WEB_USER=www
LOG_PATH=/tmp/svn.log
echo `date "+%Y-%m-%d %H:%M:%S"` >> $LOG_PATH
echo `whoami`,$REPOS,$REV >> $LOG_PATH
$SVN_PATH/svn update $WEB_PATH --username $SVN_USER --password $SVN_PASS --no-auth-cache >> $LOG_PATH
chown $WEB_USER.$WEB_USER -R $WEB_PATH
#保存退出
:wq!
--------------------------------
#以下在nginx配置时有添加
groupadd www
useradd -g www www -s /bin/false
--------------------------------
#设置脚本所属用户组,www为web服务运行账户和组
chown www:www /data/repos/hooks/post-commit
#添加脚本执行权限
chmod +x /data/repos/hooks/post-commit
#说明:
#执行此程序的用户
whoami
#svn项目绝对路径值
REPOS="$1"
#最新版本号
REV="$2"
#不保存账户认证信息
--no-auth-cache
SVN(独立安装)-1.9.7 centos 6.5(64位)的更多相关文章
- 使用centos 5.x 64位系统安装astgo 2014 v7.3教程(含全套安装文件)
版本特色: 全自动安装 安装过程中不用频繁输入yes或回车 自带完整号码归属地数据库 自带触屏版WAP ·首先确定你需要使用astgo 2014 7.0还是7.3: astgo 2014 v 7.0 ...
- CentOS 6.3 64位下MySQL5.1.54源码安装配置详解
安装环境:CentOS 6.3 64位 一:先安装依赖包(不然配置的时候会报错的!) yum -y install ncurses* libtermcap* 新建mysql用户 [root@clien ...
- CentOS 6.5 64位下安装Redis3.0.2的具体流程
系统环境:CentOS 6.5 64位 安装方式:编译安装 防火墙:开启 Redis版本:Redis 3.0.2 一.环境准备 1.安装 gcc gcc-c++ [root@iZ94ebgv853Z ...
- linux CentOs 7.4 64位 系统下 nuxt部署 、nginx 安装、node环境及软连接,pm2软连接
一.nginx安装 1.安装依赖包 //一键安装上面四个依赖 yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel 2 ...
- 在 CentOS 7.5 64位上使用 yum 安装 MySQL 8.0
前段时间在 CentOS 7.5 64位上安装 MySQL 8.0.查了些资料,在这里记录一下详细的安装和设置步骤. 一.安装 使用yum安装MySQL之前需要先下载对应的.rpm文件,下载方法: 去 ...
- VituralBox从零搭建基于CentOS 7(64位)的Kubernetes+docker集群
1. 下载CentOS 7官方minimal镜像 2. 安装VituralBox(Windows 10 64位) 3. 安装Git for windows(Windows 10 64位) 4. 安装V ...
- 完美解决MSSQL安装问题“Polybase要求安装Oracle JRE 7更新51(64位)”方案
阅文时长 | 0.72分钟 字数统计 | 1164.8字符 主要内容 | 1.问题起因及解决方案 2.安装jdk-8u241-windows-x64 3.取消PolyBase查询服务 4.四.声明与参 ...
- CentOS X64上64位Oracle 11gR2 静默安装
CentOS 6.2 X64上64位Oracle 11gR2 静默安装 www.linuxidc.com/Linux/2012-03/56606p4.htm HP-UX静默安装oracle11g过程 ...
- Centos 6.5(64位) vim 8.0 安装
转自:https://blog.csdn.net/sdoyuxuan/article/details/78825912 1 先得安装nurses库 yum list | grep "ncur ...
随机推荐
- eclipse 乱码问题总结
Eclipse 的控制台必须用GBK编码.所以条件1和条件4必须同时满足否则运行的还是乱码.才能保证不是乱码. 条件1,Window | Preferences | Workspace | T ...
- vs 编译error1083
1)右键查看该项目的属性 2)点击配置属性——〉 C/C++ ——〉 常规 ——〉 附加包含目录——〉将报错文件所在目录添加进去 3) 将项目的本地路径替换为工程相对路径 一般来说,打不开文件 ...
- 沉淀,再出发:Docker的功能浅析
沉淀,再出发:Docker的功能浅析 一.前言 这段时间一直在使用docker,发现docker的技术有很多,从最开始的将自己的程序打包成docker中的镜像,然后上传和下载镜像并使用,再到后来的在集 ...
- 使用PowerShell批量注册DLL到GAC
一段很小的代码,注册当前目录下所有的DLL到GAC,请先把gacutil.exe复制到同一个目录. $Path = Get-Location $Dir = Get-ChildItem "$P ...
- HTTP协议图--HTTP 响应状态码(重点分析)
1. 状态码概述 HTTP 状态码负责表示客户端 HTTP 请求的返回结果.标记服务器端的处理是否正常.通知出现的错误等工作. HTTP 状态码如 200 OK ,以 3 位数字和原因短语组成.数字中 ...
- 通过163smtp服务器向各大邮箱发送邮件(SOCKET编程)
package server; import java.io.*; import java.net.*; import java.sql.Time; import java.util.Scanner; ...
- Burnside引理和Polya定理
转载自:https://blog.csdn.net/whereisherofrom/article/details/79631703 Burnside引理 笔者第一次看到Burnside引理那个公式的 ...
- CString char BSTR 转换
关于字符集不一的历史原因,可以参考: UNICODE与ANSI的区别 以下是网上转载的资料.我将辅以自己的实例,说明并总结关系. 一.CString, int, string, char*之间的转换 ...
- 动画的分类:属性(几何)动画、内容(视频)动画:gpu vs cpu
属性动画通过gpu根据属性来呈现: 内容动画通过cpu解码内容按照时间呈现给gpu: (或者gpu直接解码现实?)
- 指令集 与 cpu
http://cache.baiducontent.com/c?m=9d78d513d9d437ab4f9d9e697c15c0116e4381132ba7a1020ca08448e2732d4050 ...