文档章节

linux 环境搭建svn服务

Lbj虞
 Lbj虞
发布于 2017/05/02 19:57
字数 1465
阅读 15
收藏 0

svn 是小团项目版本管理的最佳工具,下面是本人,在linux环境下面搭建svn服务的过程

由于公司的服务器是不可以上外网,只能内网访问,所以手动下载了

1.独立服务器 (例如:svn://xxx.com/xxx); 2.借助apache。(例如:http://svn.xxx.com/xxx); 为了不依赖apache,选择第一种方式-独立的svn服务器。 svn存储版本数据也有2种方式:

subversion-1.6.6.tar.gz subversion-deps-1.6.6.tar.gz

下载地址 wget http://subversion.tigris.org/downloads/subversion-1.6.6.tar.gz wget http://subversion.tigris.org/downloads/subversion-deps-1.6.6.tar.gz

我用的是1.6.6版本

1.先检查服务器上是否装过svn rpm -qa | grep subversion

2.查看svn的依赖包SSL find / -name opensslv.sh 如果没找到 能上外网,可以直接用yum 命令安装 yum install openssl yum install openssl-devel 不能连外网就只能手动,上传压缩包,手动安装



上面的OK了以后,将下载的两个 tar.gz文件上传到linux服务器
tar zxvf  subversion-1.6.6.tar.gz
tar zxvf subversion-deps-1.6.6.tar.gz
解压后会生成subversion-1.6.6子目录,进入该子目录进行编译

./configure --prefix=/usr/local/svn --with-openssl=/usr/include/openssl(此处是你服务器上opensslv.sh路径)
 --without-berkeley-db

后面以svnserve方式运行,所以不加apache编译参数。以fsfs格式存储版本库,不编译berkeley-db
如果编译时报如下错误:
no acceptable C compiler found in $PATH
说明没有gcc库,使用如下命令安装gcc后再编译:
yum -y install gcc
如果最后出现下面WARNING,我们直接忽略即可,因为不使用BDB存储。
configure: WARNING: we have configured without BDB filesystem support
You don't seem to have Berkeley DB version 4.0.14 or newer
installed and linked to APR-UTIL. We have created Makefiles which
will build without the Berkeley DB back-end; your repositories will
use FSFS as the default back-end. You can find the latest version of
Berkeley DB here:
http://www.sleepycat.com/download/index.shtml

3.安装
make 会执行一段时间
make install
如果 make install 出现下面错误:
/home/upload/subversion-1.6.6/subversion/svnversion/.libs/lt-svnversion: error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory
make: *** [revision-install] Error 127
解决办法:
1、编辑/etc/ld.so.conf文件
vi /etc/ld.so.conf
添加下面一行代码
/usr/local/lib
2、保存后运行ldconfig:
/sbin/ldconfig
注:ld.so.conf和ldconfig用于维护系统动态链接库。
3、然后再安装
make && make install

4.测试是否成功
/usr/local/svn/bin/svnserve --version

如果显示如下,svn安装成功:
svnserve, version 1.6.6 (r40053)
compiled Dec 25 2012, 13:14:38
 Copyright (C) 2000-2009 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
This product includes software developed by CollabNet
(http://www.Collab.Net/).
 The following repository back-end (FS) modules are available:
 * fs_fs : Module for working with a plain file (FSFS) repository.
 Cyrus SASL authentication is available.

为了方便下操作,把svn相关的命令添加到环境变量中:
echo export PATH=$PATH:/usr/local/svn/bin/ >> /etc/profile
source /etc/profile    

5.配置svn



5.1 简历svn根目录
mkdir -p /home/svndata/(路径自己随意定)
5.2 建立一个存放项目的文件夹(可以一个项目一个文件夹,将项目相关的东西全部放到此发文件中)
mkdir -p /home/svndata/objectone 
svnadmin create /home/svndata/objectone
5.3上面命令执行完后,会在objectone 文件下面生成5个子文件夹
README.txt:略
conf:配置文件夹
db:版本数据存储目录
format:存储一个整数的文件,此整数代表库层次结构版本
hooks:存放版本库勾子目录
locks:存储库锁目录,用来跟踪库的访问者

在conf目录3个文件 authz passwd svnserve.conf
下面设置 svnserve.conf ,

anon-access = none
auth-access = write  
password-db = passwd  
authz-db = authz 

 

passwd  设置用户名密码,authz 对用户进行分组,对分组的用户进行权限设置
(详细自己百度)

建立启动svn的用户
useradd svn
根据提示,为用户svn设置密码
允许用户svn访问版本库:
chown -R svn:svn /home/svndata/objectone/
启动svn:
方式一:svnserve -d -r /home/svndata/objectone/ #默认的启动端口号为3690
方式二:su – svn -c “svnserve -d –listen-port 9999 -r /home/svndata/objectone/”
其中:
su – svn表示以用户svn的身份启动svn;
-d表示以daemon方式(后台运行)运行;
–listen-port 9999表示使用9999端口,可以换成你需要的端口。但注意,使用1024以下的端口需要root权限;
-r /opt/svn 指定根目录是/opt/svn。
检查是否启动
netstat -tunlp | grep svn 或者 netstat -tunlp | grep 9999
如果显示以下信息说明启动成功

tcp 0 0 0.0.0.0:9999 0.0.0.0:* LISTEN 10973/svnserve

6将svn加入到开机启动
编辑rc.local文件:vi /etc/rc.d/rc.local
加入如下启动命令:
/usr/local/svn/bin/svnserve -d –listen-port 9999 -r /home/svndata/objectone
如果想停止svn,则使用如下命令:
killall svnserve
如果想将svn作为服务:
在/etc/rc.d/init.d/目录下新建名为svn的文件
并设置权限为755:chmod 755 /etc/rc.d/init.d/svn
编辑svn文件:vi /etc/rc.d/init.d/svn, 在里面添加如下代码:


#!/bin/bash
# build this file in /etc/rc.d/init.d/svn
# chmod 755 /etc/rc.d/init.d/svn
# centos下可以用如下命令管理svn: service svn start(restart/stop)
SVN_HOME=/opt/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 --listen-port 9999 -r $SVN_HOME
        echo "Finished!"
        ;;
    stop)
        echo "Stoping svnserve..."
        killall svnserve
        echo "Finished!"
        ;;
    restart)
        $0 stop
        $0 start
        ;;
    *)
        echo "Usage: svn { start | stop | restart } "
        exit 1
esac

之后便可以service svn start(restart/stop)方式启动SVN。

按照上述方法装的svn服务器,前几天宕机了,今天用的非root账号重启过后 执行了 svnserve --listen-port 9999 -d -r /users/ems/svndata 重启了svn

但是在本地提交到,svn服务器的时候报错如下 “/users/ems/svndata/repos/db/txn-current-lock”: 权限不够

因为安装svn的时候是root账号安装的,非root账号重启过后,是没有权限对root账号安装的db/txn-current-lock文件进行修改的

解决办法 su root 切换到root账号下执行下面命令 chmod 777 /users/ems/svndata/repos/db

再重启svn(随便什么账号都可以)

© 著作权归作者所有

下一篇: zookeeper简介
Lbj虞
粉丝 5
博文 30
码字总数 20298
作品 0
南京
程序员
私信 提问
本地搭建Windows SVN服务器,管理自己的代码

做为一个程序开发人员,就算自己一个人写程序,也应该有一个SVN版本控制系统,以便对开发代码进行有效的管理。这里我就介绍一个在Windows环境下简单快速搭建SVN服务器的方法。   通常的SVN...

hchen1982
2012/08/31
0
2
在Windows系统下搭建Visual SVN服务器

通常的SVN服务器是搭建在Linux等系统下,例如用Apache+SVN配置,Linux下的SVN性能会非常好,但配置有些繁琐,如果SVN服务器只有自己使用,那么可以直接把SVN服务器搭建在个人Windows环境下使...

红薯
2009/09/17
3K
0
VisualSVN Server和Subversion的联系

VisualSVN Server是只能在Windows平台上搭建的SVN服务器,内核使用的是Subversion,做了整合:apache+subversion+WMI(实现操作界面等)。 用这个的好处是一键安装即可。但是却有很多局限性:1...

easonjim
2016/11/03
0
0
linux(CentOS4) 环境apache+svn完全配置(实际配置日记)

linux(CentOS4) 环境apache+svn完全配置(实际配置日记) ××××××终于完成了,希望看过的朋友给点意见!××××××! 一、使用前的心得 配置前,要知道自己要做什么,因为很多人是新接...

Rager890312
2012/03/31
0
0
CentOS 搭建SVN服务器

系统环境:Centos 6.8 1、通过yum命令安装svnserve yum -y install subversion 此命令会全自动安装svn服务器相关服务和依赖,安装完成会自动停止命令运行 若需查看svn安装位置,可以用以下命...

一只大橘子
2017/11/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

资深架构师带你从JVM层面了解线程的启动和停止

文章简介 这一篇主要围绕线程状态控制相关的操作分析线程的原理,比如线程的中断,线程的通信等,内容比较多,可能会分两篇文章 内容导航 线程的启动的实现原理 线程停止的实现原理分析 为什...

Java-飞鱼
32分钟前
0
0
uditor上传图片

注意图片的配置路径 "imageUrlPrefix": "/blog", //blog代表我的项目名 "imagePathFormat": "/{rand:6}", 图片的名称6位随机数组成,每个人的不一样,要看自己的存在哪 查controller.jsp ......

南桥北木
39分钟前
0
0
Java线程安全策略与多线程并发最佳实践

线程安全策略 不可变对象 不可变对象(Immutable Objects)是指对象一旦被创建它的状态(对象的数据,也即对象属性值)就不能改变,任何对它的改变都应该产生一个新的对象。 不可变对象需要满足...

Java干货分享
46分钟前
2
0
阿里最强Dubbo面试28题答案详解:核心功能+服务治理+架构设计等

1.Dubbo是什么? Dubbo 是一个分布式、高性能、透明化的 RPC 服务框架,提供服务自动注册、自动发现等高效服务治理方案, 可以和 Spring 框架无缝集成。 RPC 指的是远程调用协议,也就是说两...

别打我会飞
48分钟前
6
0
在优麒麟中运行英雄联盟LOL

sudo apt install wine-stable sudo add-apt-repository ppa:lutris-team/lutris sudo apt install lutris 在lutris官网的game分类里找到英雄联盟这个游戏,然后进去那个页面, https://lutr......

gugudu
53分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部