【转】linux(Ubuntu)配置svn仓库,搭建svn服务器

原文网址:http://blog.1v2d.com/322.html

在家里搞了好久,终于搞出来,并且在线上已经成功搭建成功,在这感谢一个博主的文章,本篇文章也主要是转载他的内容,写的非常好,而且非常实用,通俗易懂,可能做的过程会遇到问题,没事,大家慢慢研究,会成功的,文章我已做优化,就是我在搭建的过程出现的问题.

转自:dazeair

原文地址:http://dazeair.blog.51cto.com/4024187/1421178

系统:Ubuntu 12.04 64位 lnmp环境

集成软件:PHP5.4.27、Nginx1.6.0、MySQL5.5.37

阿里云服务器

svn服务器有2种运行方式:独立服务器和借助apache运行。两种方式各有利弊。我这里是独立的服务器,svnserver。第一次接触感觉很麻烦,网上搜了很多,最后摸索出了一个适合阿里云服务器的环境配置方案。当然也适合普通服务器,linux系统。

--------------------------------------------------------------------------------------------------------------------------------------------

1,首先当然就是下载安装svnserver了

两种方法

# yum install subversion  //centos系列 复制这行
# apt-get install subversion //ubuntu系列系统复制这行

2,然后就是创建svn仓库我是创建在 /var/svndata目录下www目录的,这里目录可以自己定。当然这个目录得提前创建好

# cd /var
# mkdir svndata
# cd svndata
# mkdir www

然后就是创建仓库了

# svnadmin create /var/svndata/www

修改配置文件

进入/var/svndata/www目录(这里的www目录不是网站的web目录,仓库名为www)

# cd /var/svndata/www
# ls

会看到conf、hooks、db等目录,我们会用到的也就conf(配置目录)hooks(设置钩子,后面会讲到)

进入conf目录

# cd www

首先配置svnserve.conf

# vim svnserve.conf

修改(把前面的#号去掉,配置后面的值,共修改五行代码,后面的值是修改过得,大家看清楚)

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

在passwd文件中添加用户,此步骤就是添加svn用户名和密码,

# vim passwd

[users]

admin = 123456

dazeair = 123456

user1 = 123456

user2 = 123456

这里设置了四个用户,分别为admin,dazeair,user1和user2。根据情况不同可以随意设置。

在authz中添加组和权限

# vim authz

[groups]

group1 = admin,dazeair  #group1组里的成员

group2 = user1,user2

[/]             #配置根目录的权限

admin =rw       #admin用户对[/]目录的权限:r读,w写

@group1 = rw    #@表示组,group1组有读写权限

@group2 = r     #group2组只有r读权限

* =             #这里表示其他用户无任何权限

[www:/user1]    #配置根目录(www目录)下的user1文件夹的权限user1 = rw

[www:/user2]    #配置user2文件夹的权限

user2 = rw

这里说明下,前面添加了四个用户,分了两个组,对于根目录group1拥有读写权限,而group2只有r权限。根目录(www目录)下有user1和user2两个文件夹,分别配置了user1和user2两个用户相应的权限。如不需要,可以不添加相应的代码。

启动svnserve

# svnserve -d -r /var/svndata/

也可以使用 --listen-port 参数指定端口(默认端口3690),启动多个仓库

正常情况下不会出现问题的,如出现请检查刚才的配置文件

导入项目项目目录为svn://localhost/www
创建svn仓库副本(nginx的读取目录,也就是web目录,我的web目录/var/www)
进入web目录

# cd /var

同步

svn co svn://localhost/www

显示如下

保存用户名与密码,实现之后的自动同步。
这里可能会出现  错误:svn:E170001;认证失败

还有可能出现找不到openssl错误,利用yum安装openssl和openssl-dev即可。

看到这个恭喜,已经搭建成功了。

设置svn更新后自动更新web目录

# cd /var/svndata/www/hooks/

里面会有很多.tmpl文件,这里我们只需要post-commit.tmpl文件,但这个文件只是模板文件,我们需要复制一份放在此目录下,命名为post-commit。此步骤很重要

# cp post-commit.tmpl post-commit

# vim post-commit

在文件的底部修改和添加

# "$REPOS"/hooks/mailer.py commit "$REPOS" $REV "$REPOS"/mailer.conf  # 注释掉这段代码

export LANG=zh_CN.UTF-8

export LANG=en_US.UTF-8

svn update --no-auth-cache --non-interactive /var/www      #主要是这段代码,最后的地址是web地址

说明:

#!/bin/sh 说明是执行shell命令,不需要修改

export LANG=zh_CN.GBK 是为了解决svn post commit 中文乱码,设置本地化编码,因为我的系统为GBK编码,SVN默认是UTF-8编码,如果不设置将会出现错误,而执行不成功,错误标识为svn: Can‘t convert string from native encoding to ‘UTF-8‘

到这里自动更新也解决了,下一步就是开机自动启动。

实现开机自动启动

将svnserve -d -r /var/svndata/ 写入/etc/rc.local即可实现开机启动(一般在etc文件下,或者/etc/rc.d/文件夹下)

# vim /etc/rc.local

svnserve -d -r /var/svndata/

exit 0

ps:刚才配置的时候还有个user1之类的用户,user1只能管理user1目录,地址为svn://IP地址/www/user1

并且请保证文件有读写权限,chmod -R 777 /var/www

到这里所有大功告成,现在可以用客户端测试下了,一般都用TortoiseSVN,地址为svn://IP地址/www。

你的svn服务器搭建好了吗?是不是很简单。

大体就是这样,如果有问题,大家可以留言,

时间: 2024-12-25 04:51:27

【转】linux(Ubuntu)配置svn仓库,搭建svn服务器的相关文章

Ubuntu 14.04 下搭建SVN服务器 (转载自 http://www.linuxidc.com/Linux/2015-01/111956.htm)-------------我所用到是红色字体

http://www.linuxidc.com/Linux/2015-01/111956.htm Ubuntu 14.04 下搭建SVN服务器 svn:// 安装软件包: sudo apt-get install subversion 之后选择SVN服务文件及配置文件的放置位置.我放在了/srv下的svn目录. cd /srv sudo mkdir svn 我的svn版本仓库叫tone_src cd /srv/svn sudo mkdir tone_src 目录建好后 创建版本仓库 sudo s

UBUNTU 12 tls上搭建svn问题解决

UBUNTU 12 tls上搭建svn 参考网上的文章http://www.cnblogs.com/likwo/p/3152365.html 搭建了一台svn服务器.下面说说我的理解. 搭建主要思路是采用apache2和subversion subversion服务器端主要由svnadmin组成,起初始化svn库的目录结构作用,真正起到svn服务功能的其实是apache加apache_svn模块插件.svn客户端是采用http协议与apache交互.特别是通过option方法进行数据提交. 问题

linux 下面配置eclipse 与搭建maven 环境

linux 下面配置eclipse 与搭建maven 环境 linux 下面配置eclipse与搭建 maven 环境 1.1 上传安装处理 apache-maven-3.0.5-bin.tar.gz repository.tar.gz eclipse-jee-kepler-SR1-linux-gtk-x86_64.tar.gz 1.2 配置maven 环境 $ mkdir .mvn $tar -zxvf apache-maven-3.0.5-bin.tar.gz -C yangyang/ $

ubuntu 12.04下搭建web服务器(MySQL+PHP+Apache) 教程(转+亲测)

ubuntu 12.04下搭建web服务器(MySQL+PHP+Apache) 教程 1.切换管理员身份 在ubuntu中需要用root身份进行操作,所以用下面的命令确保以root身份登录: sudo su 2.开始安装ssh (安装SSH-server:(用Xshell操作更方便,先获得ssh服务支持)sudo apt-get updatesudo apt-get install openssh-server openssh-client启动SSH-Serversudo /etc/init.d

Linux DNS (2)搭建DNS服务器

注意:实验很简单,环境很重要.大家在做实验的时候一定要注意环境的配置,不然实验做的再好最后的结果也和我们想的要的结果不一样的. 首先我们先准备环境: 虚拟机一个 RedHat5.9系统两个操作系统 我们把他们的网路连接在同一个"VMnet"里 配置IP地址,都配置在一个网段的IP. 注释: DNS有几点要注意的 DNS可以一个域名对应很多IP DNS可以一个IP对应很多域名 注意:首先要关闭防火墙和selinux [[email protected] ~]#  /etc/init.d/

Ubuntu 14.04 下搭建SVN独立服务器

一.安装软件包: sudo apt-get install subversion 二.选择SVN服务文件及配置文件的放置位置.我放在了/srv下的svn目录. cd /srv sudo mkdir svn 我的svn版本仓库叫tone_src cd /srv/svn sudo mkdir tone_src 三.创建版本仓库 sudo svnadmin create /srv/svn/tone_src 执行之后 tone_src下文件结构如下: [email protected]:/srv/svn

ubuntu 14.04 下搭建SVN服务器 svn://

安装软件包: sudo apt-get install subversion 之后选择SVN服务文件及配置文件的放置位置.我放在了/srv下的svn目录. cd /srv sudo mkdir svn 我的svn版本仓库叫tone_src cd /srv/svn sudo mkdir tone_src 目录建好后 创建版本仓库 sudo svnadmin create /srv/svn/tone_src 执行之后 tone_src下文件结构如下: [email protected]:/srv/s

CentOS 7 使用SVN+Apache搭建版本控制服务器

svn简介 Subversion是一个免费/开源的版本控制系统, Subversion 可以跨越时间地对文件和目录, 以及它们的修改进行管理. 这就允许你恢复 数据的旧版本, 或检查数据的修改历史. 由于这个特点, 很多人把版本控制系统 看成是一种 "时间机器". Svn的组件 svn 客户端命令行工具 svnversion 用于报告工作副本状态 (就项目的版本号而言) 的工具 svnlook可以直接检查仓库的工具 svnadmin 用于创建, 调整或修复 Subversion 仓库的

svn+apache搭建版本控制服务器

Centos7(linux)搭建版本控制服务器(svn+apache) 1.简介: 版本控制服务器: 版本控制(Revision control)是一种软体工程技巧,籍以在开发的过程中,确保由不同人所编辑的同一档案都得到更新. SVN: SVN(subversion)是版本管理工具,是CVS的接班人.目前,绝大多数开源软件都使用svn作为代码版本管理软件. 作为运维人员来说,安装和配置SVN服务器和客户端是必须要掌握的内容. 常见的版本控制: Cvs:由于之前cvs编码的问题,现在大多数软件开发