Linux下源码编译安装配置SVN服务器的步骤分享

说明:

SVN(subversion)的运行方式有两种:

一种是基于Apache的http、https网页访问形式;

还有一种是基于svnserve的独立服务器模式。

SVN的数据存储方式也有两种:一种是在Berkeley DB数据库中存储数据;另一种是使用普通的文件FSFS存储数据。

由于Berkeley DB方式在使用中有可能锁住数据,一般建议使用FSFS方式更安全。

实现目的:

以svnserve的独立服务器模式,使用FSFS数据存储方式源码编译安装配置SVN服务器。

具体操作:

操作系统:CentOS 6.x

服务器IP:192.168.21.134

一、关闭SELINUX

vi /etc/selinux/config

#SELINUX=enforcing #注释掉

#SELINUXTYPE=targeted #注释掉

SELINUX=disabled #增加

:wq! #保存退出

setenforce 0 #使配置立即生效

二、开启防火墙端口

基于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 #最后重启防火墙使配置生效

三、安装编译工具包

yum install apr* autoconf automake bison 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* libjpeg* libsepol-devel libselinux-devel libstdc++-devel libtool libtool* libgomp libxml2 libxml2-devel libXpm* libtiff libtiff* libX* make mpfr ncurses* ntp openssl openssl-devel patch pcre-devel perl php-common php-gd policycoreutils ppl telnet t1lib t1lib* nasm nasm* wget zlib-devel zlib unzip perl-ExtUtils-Embed

yum remove apr apr-util subversion subversion-libs #删除系统中原有的svn及依赖包

四、下载svn需要的依赖软件包

说明:安装svn需要的软件包:apr apr-util serf scons openssl

软件包存放目录:/usr/local/src

1、下载apr

https://dist.apache.org/repos/dist/release/apr/apr-1.5.2.tar.gz

2、下载apr-util

https://dist.apache.org/repos/dist/release/apr/apr-util-1.5.4.tar.gz

3、下载scons

http://prdownloads.sourceforge.net/scons/scons-2.3.5.tar.gz

4、下载openssl

http://www.openssl.org/source/openssl-1.0.1o.tar.gz

5、下载serf

http://fossies.org/linux/www/serf-1.3.8.tar.gz

6、下载svn

http://www.apache.org/dist/subversion/subversion-1.8.13.tar.gz

7、下载sqlite-amalgamation

http://www.sqlite.org/snapshot/sqlite-amalgamation-201506201411.zip

五、安装SVN

1、安装apr

cd /usr/local/src #进入软件包存放目录

tar zxvf apr-1.5.2.tar.gz #解压

cd apr-1.5.2 #进入安装目录

./configure --prefix=/usr/local/apr #配置

make #编译

make install #安装

2、安装apr-util

cd /usr/local/src

tar zxvf apr-util-1.5.4.tar.gz

cd apr-util-1.5.4

./configure --with-apr=/usr/local/apr/bin/apr-1-config

make

make install

3、安装scons

cd /usr/local/src

tar zxvf scons-2.3.5.tar.gz

cd scons-2.3.5

python setup.py #配置

install #安装

4、安装openssl

cd /usr/local/src

tar zxvf openssl-1.0.1o.tar.gz

cd openssl-1.0.1o

CFLAGS=-fPIC ./config --prefix=/usr/local/openssl enable-shared

make

make install

vi /etc/profile #添加系统环境变量

export PATH=$PATH:/usr/local/openssl/bin

:wq! #保存退出

source /etc/profile #使配置生效

ln -s /usr/local/openssl/include/openssl /usr/include/openssl #添加系统软连接

5、安装serf

cd /usr/local/src

tar zxvf serf-1.3.8.tar.gz

cd serf-1.3.8

scons PREFIX=/usr/local/serf APR=/usr/local/apr/bin/apr-1-config APU=/usr/local/apr/bin/apu-1-config OPENSSL=/usr/local/openssl

scons install

cd /usr/local/serf/lib

cp libserf-1.so* /usr/local/lib/ #拷贝文件到系统目录

6、安装svn

cd /usr/local/src

tar zxvf subversion-1.8.13.tar.gz

cd subversion-1.8.13

mkdir /usr/local/src/subversion-1.8.13/sqlite-amalgamation #创建sqlite-amalgamation目录

cd /usr/local/src

unzip sqlite-amalgamation-201506201411.zip -d /usr/local/src/subversion-1.8.13/sqlite-amalgamation

#解压sqlite-amalgamation软件包到sqlite-amalgamation目录

./configure --prefix=/usr/local/svn --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config --with-serf=/usr/local/serf --with-openssl=/usr/local/openssl --enable-mod-activation #配置

make #编译

make install #安装

vi /etc/profile #添加系统环境变量,添加到最后一行

export PATH=$PATH:/usr/local/svn/bin

:wq! #保存退出

source /etc/profile #使配置立刻生效

whereis libexpat.so.1 #查找文件安装目录,如下:

libexpat.so: /lib/libexpat.so.0 /usr/local/lib/libexpat.so /usr/local/lib/libexpat.so.1

vi /etc/ld.so.conf #编辑加入libexpat.so.1的目录

/usr/local/lib/

:wq! #保存退出

ldconfig #使配置生效

7、测试安装是否成功:

svn help #查看svn帮助信息

svnserve --version #查看svn版本信息

svn --version

六、配置svn

1、创建svn代码库

mkdir -p /home/svn #创建目录

svnadmin create /home/svn #创建svn代码库

#上面的命令执行完成之后,会自动建立svn库,在/home/svn文件夹含了conf,db,format,hooks,locks,README.txt等文件。

#说明svn代码库创建成功。

2、配置svn代码库

cd /home/svn/conf #进入配置文件存放目录

vi /home/svn/conf/svnserve.conf #配置全局文件,在最后添加以下代码

[general]

anon-access=none #禁止匿名访问,设置为none。默认为read,参数:read,write,none

auth-access=write #授权用户写权限

password-db=passwd #用户账号密码文件路径,可以写绝对路径

authz-db=authz #访问控制权限文件路径,可以写绝对路径

realm=svn #每个SVN项目的认证命,会在认证提示里显示,建议写项目名称。

:wq! #保存退出

vi /home/svn/conf/passwd #配置用户密码

[users]

# harry = harryssecret

# sally = sallyssecret

osyunwei=123456

test=123456

test2=123456

:wq! #保存退出

vi /home/svn/conf/authz #配置权限控制文件,设置用户可以访问的目录

[groups]

admin = osyunwei

users = test,test2

[/]

@admin = rw

* = r

:wq! #保存退出

#[/]代表根目录下所有的资源

3、启动svn

svnserve -d -r /home/svn --listen-port 3690

ps -ef|grep svn|grep -v grep #查看svn进程

root 12538 1 0 14:40 ? 00:00:00 svnserve -d -r /home/svn

netstat -ln |grep 3690 #检查svn端口

tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN

killall svnserve #关闭svn服务

4、设置svn服务开机启动

vi /etc/init.d/svn #编辑,添加以下代码

#!/bin/sh
# chkconfig: 2345 85 85
# processname: svn
svn_port=3690
svn_home=/home/svn
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

:wq! #保存退出

chmod +x /etc/init.d/svn #添加执行权限

chkconfig svn on #开启自启动

5、测试svn

svn checkout svn://192.168.21.134/ --username=osyunwei --password=123456 #将文件下载到本地目录

svn update --username=osyunwei --password=123456 #更新上次修改之后的版本库

七、使用客户端连接svn服务器

TortoiseSVN是Windows平台下SVN(subversion)的一个免费开源的客户端。

TortoiseSVN下载地址:http://tortoisesvn.net/downloads.html

目前最新版本为:TortoiseSVN 1.8.11,区分32位和64位操作系统,并且提供中文汉化包。

如下图所示:

Linux下源码编译安装配置SVN服务器的步骤分享

Linux下源码编译安装配置SVN服务器的步骤分享

安装完成之后,桌面-右键单击,选择TortoiseSVN-版本库浏览器

如下:

Linux下源码编译安装配置SVN服务器的步骤分享

URL输入:svn://192.168.21.134/

Linux下源码编译安装配置SVN服务器的步骤分享

Linux下源码编译安装配置SVN服务器的步骤分享

输入用户名:osyunwei

密码:123456

勾选:保存认证

确定

Linux下源码编译安装配置SVN服务器的步骤分享

可以看到svn服务器上的内容,右键单击之后,可以选择创建文件夹等操作。

至此,Linux下源码编译安装配置SVN服务器教程完成。

时间: 2015-07-08

linux(centos)下SVN服务器如何搭建

虽然在windows上搭建SVN很简单,但是效能却不高,这当然是和linux相比了.然而在linux上搭建SVN却非常繁琐,所以今天这篇文章就来一步一步教您如何在Centos上搭建SVN. 安装步骤如下: 1.yum install subversion 2.输入rpm -ql subversion查看安装位置,如下图: 我们知道svn在bin目录下生成了几个二进制文件. 输入 svn --help可以查看svn的使用方法,如下图. 3.创建svn版本库目录 复制代码 代码如下: mkdir -

Linux下SVN服务器自动更新文件到Web目录的方法

说明: 服务器操作系统:CentOS 服务器IP:192.168.21.134 SVN安装路径:/usr/local/svn SVN项目路径:/home/svn SVN登录账号:osyunwei SVN登录密码:123456 Web站点根目录:/home/web 实现目的: 当svn项目中有任何修改更新时,系统会自动实时从svn中检出文件并同步到Web站点根目录 具体操作: 一.使用SVN中post-commit实现自动实时从svn中检出文件并同步到Web站点根目录 cd /home/svn/h

在Linux系统中将Redmine和SVN整合入Nginx的方法

Redmine:是一个基于web的项目管理软件,用Ruby开发的.是基于ROR框架开发的一套跨平台项目管理系统,是项目管理系统的后起之秀,据说是源于Basecamp的ror版而来,支持多种数据库,除了和DotProject的功能大致相当外,还有不少自己独特的功能,例如提供wiki.新闻台.时间跟踪.feed聚合.导出pdf等等,还可以集成其他版本管理系统和BUG跟踪系统,例如SVN.CVS.TD等等.配置功能强大而且方便,自定义属性和更新通知也很实用.下面我们来部署redmine+svn项目管理

删除SVN三种方法delSvn(windows+linux)

一.在linux下 删除这些目录是很简单的,命令如下 find . -type d -name ".svn"|xargs rm -rf 或者 find . -type d -iname ".svn" -exec rm -rf {} \; 二.在windows下用以下法子: 1.在项目平级的目录,执行dos命令: xcopy project_dir project_dir_1 /s /i 2.或者在项目根目录执行以下dos命令 for /r . %%a in (.)

Linux svn的搭建与使用(图文详解)

Linunx svn的搭建与使用........纯手打的..具体入下: 一.安装前的准备 1.1 配置yum 库 1)加载光盘 2)进入/etc/yum.repo.d目录 3)复制"rhel-debuginfo.repo"为"my.repo" 4)修改my.repo文件 5)修改红框标注部分 修改完毕保存退出:wq 1.2 安装telnet 远程连接工具 1)用yum命令安装远程工具. 2)安装成功. 3)用vi命令编辑位于/etc/xinetd.d下的telnet

linux下安装配置svn独立服务器的步骤分享

file:/// 直接版本库访问(本地磁盘). http:// 通过配置Subversion的Apache服务器的WebDAV协议. https:// 与http://相似,但是包括SSL加密. svn:// 通过svnserve服务自定义的协议. svn+ssh:// 与svn://相似,但通过SSH封装 svn存储版本数据也有2种方式:BDB和FSFS.因为BDB方式在服务器中断时,有可能锁住数据,所以还是FSFS方式更安全一点.1. svn服务器安装操作系统: Redhat Linux A

详解Linux上svn命令行批量操作

详解Linux上svn命令行批量操作 虽然说git很好,大多数时候我也是使用git,但是有时候因为一些原因,不得不使用svn,而在linux上使用svn是没有像windows上的tortoisesvn的软件的(网上有说有类似的,但是折腾了很久仍然没有成功),所以直接来命令行吧. 我们直接安装svn就好,然后文件修改之后使用命令 svn status 查看文件的跟踪信息,这里会使用一些代号,对应的大概是 " " 无修改 "A" 新增 "C" 冲突

详解Linux中vi命令大全

vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令.由于 对Unix及Linux系统的任何版本,vi编辑器是完全相同的,因此您可以在其他任何介绍vi的地方进一步了解它.Vi也是Linux中最基本的文本编 辑器,学会它后,您将在Linux的世界里畅行无阻. vi的基本概念 基本上vi可以分为三种状态,分别是命令模式(command mode).插入模式(Insert mode)和底行模式(last line m

详解linux下make命令的使用方法

本文我们将用一些实例来讨论 make 命令背后的工作机制. Make 如何工作的 对于不知道背后机理的人来说,make 命令像命令行参数一样接收目标.这些目标通常存放在以 "Makefile" 来命名的特殊文件中,同时文件也包含与目标相对应的操作.更多信息,阅读关于 Makefiles 如何工作的系列文章. 当 make 命令第一次执行时,它扫描 Makefile 找到目标以及其依赖.如果这些依赖自身也是目标,继续为这些依赖扫描 Makefile 建立其依赖关系,然后编译它们.一旦主依

详解linux下tree命令的用法

tree命令,主要功能是创建文件列表,将所有文件以树的形式列出来 linux下的tree就比较强大了,但一般系统并不自带这个命令,需要手动下载安装, 安装 : yum -y install tree -a 显示所有文件和目录. -A 使用ASNI绘图字符显示树状图而非以ASCII字符组合. -C 在文件和目录清单加上色彩,便于区分各种类型. -d 显示目录名称而非内容. -D 列出文件或目录的更改时间. -f 在每个文件或目录之前,显示完整的相对路径名称. -F 在执行文件,目录,Socket,

详解linux中nano命令

nano是一个字符终端的文本编辑器,有点像DOS下的editor程序.它比vi/vim要简单得多,比较适合Linux初学者使用.某些Linux发行版的默认编辑器就是nano. nano命令可以打开指定文件进行编辑,默认情况下它会自动断行,即在一行中输入过长的内容时自动拆分成几行,但用这种方式来处理某些文件可能会带来问题,比如Linux系统的配置文件,自动断行就会使本来只能写在一行上的内容折断成多行了,有可能造成系统不灵了.因此,如果你想避免这种情况出现,就加上-w选项吧. 语法 nano [选项

详解Linux命令中的正则表达式

命令中的正则表达式 如果要在命令输出或文本中筛选内容时使用模糊查找,就需要使用正则表达式.正则表达式是一套由多个元字符组成的模糊查找模式,使用正则表达式可以快速查找和定位文本中指定的内容. 1.单字符匹配符.  正则表达式主要由一些元字符和匹配模式组成 单字符匹配符可以匹配任意单个字符,这个字符的功能和文件名匹配符中的?功能相同 使用正则表达式查找文本,首先需要使用元字符组成一个查找模式 (1)使用查找模式时,通常将其放入两个斜杠//中,然后再放入命令,例如要在一个文本中查找匹配模式/.i...

详解Linux命令iostat

Linux系统出现了性能问题,一般我们可以通过top.iostat.free.vmstat等命令来查看初步定位问题.在一个以前看到系统监控工具,总在想那些监控工具的代理,如何收集系统性能信息,io性能,cpu使用,带宽使用等信息,偶然发现,不同系统均提供有性能分析工具的,代理可通过这些命令获取系统性能信息,个人猜测,不知道具体是不是这样的.其中iostat可以给我们提供丰富的IO状态数据,下边就来看一下iostat如何使用,命令能够输出那些信息. 简述 Linux系统中通过iostat我们能查看

详解Linux文本文件与WIN文本文件换行格式转换命令

详解Linux文本文件与WIN文本文件换行格式转换命令 前言: 有 时在WIN下编辑好的脚本文件上传到LINUX服务器中不能正常执行,开始误认为是LINUX配置问题,后来发现,是WIN与LINUX存储文件时的换行 符标志不同造成的.在DOS使用的换行符为 ^M$,我们称为CR与LF两个符号.而在Linux中,则仅有LF ($) 这个换行符. 可以用如下命令完成格式转换:$dos2unix,$unix2dos.但这两个命令在UBUNTU发行版本中不存在,可通过: $sudo apt-get ins

详解 Linux中的关机和重启命令

详解 Linux中的关机和重启命令 一 shutdown命令 shutdown [选项] 时间 选项: -c:取消前一次关机命令 -h:关机 -r:重启 二 shutdown实战 [root@localhost tmp]# date Sat Jul 15 09:28:35 CST 2017 [root@localhost tmp]# shutdown -r 05:30 Shutdown scheduled for Sun 2017-07-16 05:30:00 CST, use 'shutdow

详解Linux 主机网络接入配置

详解Linux 主机网络接入配置 前言: 网络配置是我们在安装好操作系统之后,需要解决的第一步.现时代没有接入网络的主机已然等同于一堆废铁.在网络配置的过程中,通常我们需要配置本机IP地址,缺省网关,DNS,主机名等等.本文主要描述在Linux环境下,主要以传统命令行方式讲解如何将主机接入网络.对于网路配置的新命令如ip,nmcli等等在以后的文章中描述. 一.网络配置概述 主机接入互联网前提:遵循TCP/IP协议栈 配置主机接入TCP/IP网络需要配置的内容:   IP/Netmask   路