`
aben328
  • 浏览: 1460474 次
  • 性别: Icon_minigender_1
  • 来自: 广东
社区版块
存档分类

Linux SVN的安装使用2009-06-20

    博客分类:
  • SVN
阅读更多
Linux SVN的安装使用
2009-06-20 20:03

The goal of the Subversion project is to build a version control system that is a compelling replacement for CVS in the open source community. The software is released under an Apache/BSD-style open source license.

SVN是一个版本控制软件,类似CVS,但是SVN的的有点是开源的,而且SVN的版本控制能力给CVS还要强多。

SVN可以用于项目管理,还可以用于版本同步,功能可是十分强呢:)

下载:
http://subversion.tigris.org

当前日期稳定版SVN1.32

 

http://subversion.tigris.org/downloads/subversion-1.3.2.tar.gz

安装:

解压:#: tar zxvf subversion-1.3.2.tar.gz

依次输入./configure , make , make install 进行编译安装完成。

开启SVN服务:svnserve -d

检测服务是否开启:netstat -ntlp如果看到3690的端口正常开放了,证明SVN启动了。

正式使用:
首先我们得建立一个SVN的项目,一般人都认为建立项目就只需要一个文件,在我第一次使用SVN之前都有这样的看法,SVN建立项目需要建立文件夹

建立项目命令:svnadmin create project_name     project_name 为你的project名字,可以任意取。
建立完毕后,project_name是一个文件夹,进入文件夹,可以看到一个conf的文件夹。进入文件夹可以看到2个文件(如果没有passwd文件,可以用vi创建),编辑
svnserve.conf  把anon-access = read ,auth_access = write
还有password-db = passwd 的注释去掉,还有[general]的注释也要去掉。
vi passwd文件,如果是新文件,则输入:
[user]
your_name = your_password
这里设置的your_name是你的用户名,your_password是你的密码,这个是访问SVN必要的通行证。

好了,现在终于把准备功夫做完了,下面可以正是使用了。
首先找到你的项目源代码文件夹,使用下面命令:
cd your project
in your project dircetory
use:svn co /home/project_name --username = your_name --password=your_password

好了,现在你可以在客户机上使用以下命令获得你想要的项目源代码文件
svn co svn://home/project_name --username=your_name --password = your_password

把增加的svn文件添加入svn库:
svn add /home/your_project/*.* --username=your_name --password = your_password

提交文件:
svn commit /home/your_project/*.* --username=your_name --password=your_password

更新文件:svn update /home/your_project/*.* --username=your_name --password=your_password

当然你可以编辑一个脚本文件来一次完成所有的操作:
vi svnupdate.sh

#!/bin/sh
svn add /home/your_project/*.* --username=your_name --password = your_password
svn commit /home/your_project/*.* --username=your_name --password=your_password
svn update /home/your_project/*.* --username=your_name --password=your_password


chmod +x svnupdate.sh

Finish
关键词: SVN apache linux subversion                                       

1、安装APR-1.2.7和APR-util-1.2.7

下载地址:[url]http://apr.apache.org/[/url]

tar zxvf   apr-1.2.7.tar.gz

./configure

make

make install

tar zxvf apr-util-1.2.7.tar.gz

./configure --with-apr=/usr/local/apr/

    make

    make install

2、编译安装APACHE。

tar zxvf httpd-2.2.3.tar.gz
cd httpd-2.2.3
./configure --prefix=/opt/apache --enable-dav --enable-so --enable-maintainer-mode --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config

    make
    make install

3、安装subversion-1.4.0

    tar zxvf subversion-1.4.0.tar.gz

    ./configure --with-apxs=/opt/apache/bin/apxs --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr

    make

    make install

4、查看subversion两个动态库有没有安装成功

    vi /opt/apache/conf/httpd.conf

看到下面两个模块说明安装成功

    LoadModule dav_svn_module     modules/mod_dav_svn.so
    LoadModule authz_svn_module modules/mod_authz_svn.so

5、配置SVN

vi /opt/apache/conf/httpd.conf

    以下大概是我的配置:

<Location /svn>
   DAV svn
       SVNParentPath /data/svn/repos
       AuthType Basic
       AuthName "Subversion repository"
       AuthUserFile /data/svn/passwd
       AuthzSVNAccessFile /data/svn/auth
       Require valid-user
</Location>
6、建立SVN存储仓库

    #mkdir -p /data/svn/repos

#svnadmin create /data/svn/repos/tony.tang

备份以前的SVN库

#svnadmin dump /data/svn/repos/tony.tang/ > /root/tony.tang

把备份出来的数据恢复到本地

#svnadmin load /data/svn/repos/tony.tang/ < /home/tony.tang

7、建立本地访问控制文件

/opt/apache/bin/htpasswd -c /data/svn/passwd clay.li

会提示你输入密码,默认是MD5加密

8、建立本地项目控制文件

touch /data/svn/auth

我的文件内容为:

[groups]
[hms.rd.ikang.com:/]
#wxy = rw
chen.shanshan = rw
nuo = rw
jonathan.sun = rw

[php.ikang.com:/]
#wxy = rw
peter = rw

[tony.tang:/]
tony.tang = rw
jonathan.sun = rw
clay.li    =rw

9、安装客户端,访问服务器

因为我的apache配置端口为88所以访问服务器的时候必须加上端口号。

[url]http://192.168.7.10:88/svn/tony.tang[/url]

注意:SVN是APACHE配置的时候加上去的。

10、到此安装基本结束

    修改一下/data/svn/repos属性,否则会导致文件上传失败。

cd /data/svn/

    chmod -R apache.apache repos

主要参考文章:

[url]http://www.01cn.net/cgi-bin/topic_show.cgi?id=3073&bpg=1&age=0[/url]

要在新服务器上装版本控制系统了。本来打算和以前一样用 CVS 来进行源代码管理,碰巧看到 duduwolf 对 SVN 大力推荐,加上这篇文章对于各种版本控制系统功能的完整比较,一直为 CVS 的各种缺陷感到郁闷的我自然毫不犹豫投奔了 SVN 的怀抱。

安装过程算不上一帆风顺,但我不打算在这里写出一篇完整的安装手册来,只简单记录几点体会。
服务模式
SVN 可以通过内置的 svnserve 提供服务,也可以和 Apache 配合通过标准的 http/https 来提供服务。用 svnserve 的好处是配置相对简单,但不足是 svnserve 所能提供的权限管理最小粒度只能到版本库(和 CVS 一样)。这对于开源软件的开发使用可能问题不大,但对于用作公司内部源代码控制来说就太简单了。所以我选择用 Apache + SSL + SVN 。
当 初使用 CVS 最让我觉得美中不足的就是它的目录权限控制。因为针对每个用户只能控制其访问整个版本库的读写权限,以至于我不得不创建了N个独立的版本库。即便这样,每 个版本库下面还是有许多项目是希望能分别控制权限的。当时采用的方法是禁用了CVS的目录浏览功能,并对每个项目目录名增加随机编号。只有知道确切的目录 名称才可以访问到该项目。现在既然改用 SVN ,如果还是无法对版本库里面的每一个子目录进行精确的权限控制的话,还不如用 CVS 。通过配置AuthzSVNAccessFile文件来控制每一个项目目录的访问权限虽然算不上特别方便,但总比 CVS 那样完全没办法好。
数据存储
SVN 同样可以使用两种数据存储方式: Berkeley DB 和 FSFS 。在我看来, Berkeley DB 的优势在于其成熟性,但需要更多的日常管理和维护,并且是平台依赖的。所以我选择更简便的 FSFS 。
APR libraries
安 装 SVN 的时候最好指定 --with-apr= 和 --with-apr-util= 参数到 Apache 安装的根目录(ServerRoot)下,而不是使用缺省的 SVN 安装包中自带的 apr 。否则如果你安装的 Apache 版本不同有可能导致 APR 库不匹配,出现类似 Can't set position pointer in file '/svn/test/db/revs/1': Invalid argument 的错误。Updated 2006-04-20 16:30 -- 比如说如果你安装的是apache 2.2.0版本,就需要在编译安装svn的时候指定--with-apxs和--with-apr参数到你的apache2.2.0安装目录下:
./configure --prefix=${subversionInstallFolder} /
--with-apxs=${apacheInstallFolder}/bin/apxs /
--with-apr=${apacheInstallFolder} /
--with-apr-util=${apacheInstallFolder} /
--with-ssl /
--with-zlib /
--enable-maintainer-mode

make clean && make && make install
签署证书
既然是公司内部的源码控制系统,通过 SSL 来加密保护登录信息还是很有必要的。证书的制作所 填写的信息其他都关系不大,只要注意生成根证书和服务器请求签证文件时的两次 Common Name 不能一样(理论上Common Name 应该是用户将会用来访问的完整域名字符串),否则会导致证书生成的时候出现 error 18 at 0 depth lookup:self signed certificate 错误。
Updated 2006-06-29 12:52 -- 似乎还是有不少朋友在安装svn的时候碰到各种各样的问题,所以我把自己用来进行 svn server 恢复的完整脚本提供给大家下载( 点击下载 svn_recover.rar 13,473 字节),仅供大家参考。需要说明的几点:
  1. 不要直接运行 reinstall.sh 脚本。因为这个脚本是针对我自己的 svn 服务器的情况来写的,目的是在重装服务器的时候可以完全实现自动化。所以如果你不去了解脚本的实际工作就放服务器上执行,由此造成的任何后果我可不负责 :)
  2. 我的 svn server 不需要提供其他的服务,所以我的安装脚本是完全以 svn 服务为中心的,如果你的服务器还需要提供 php / mysql 等服务的话,这个脚本可能并不适合你。
  3. 为 了 recover 的方便,我把 svn 所需要的一些关键文件放在了 resource 目录下面,安装脚本自动从 resource 目录下读取相关的文件拷贝到对应的目标目录下。你如果想用这个脚本,需要在 resource 目录下提供你自己服务器环境下的真实文件。本压缩包中的资源文件仅作示例。
分享到:
评论

相关推荐

    linuxsvn离线安装

    在没有网络连接的情况下,即离线状态下安装Linux SVN,需要提前下载好所有必要的依赖包,然后在本地进行安装。以下是详细的操作步骤和相关知识点: 1. **了解SVN**: SVN是一种集中式版本控制系统,它允许用户跟踪...

    Linux SVN安装包(subversion-1.6.18)

    在Linux环境中,安装Subversion是进行团队协作的重要步骤。这里我们将详细探讨如何在Linux上安装`subversion-1.6.18`这一特定版本。 一、SVN简介 Subversion是一种集中式版本控制系统,与Git这样的分布式版本控制...

    Linux离线安装svn.zip

    在Linux环境中,Subversion(简称svn)是一种广泛使用的版本控制系统,用于管理软件项目的源代码和其他文件的变更。本文将详细讲解如何在没有网络连接的情况下,通过提供的“Linux离线安装svn.zip”压缩包来安装和...

    linux svn安装手册

    Linux SVN安装手册旨在指导用户在Linux环境中安装Subversion(SVN)版本控制系统。Subversion是一个开源的版本控制系统,用于管理文件和目录版本的历史记录,便于团队协作开发。以下是详细的安装步骤: 1. 首先,...

    centos下svn客户端软件rapidSVN安装资源包及教程

    rapidsvn安装所需的全部资源包,可离线安装(gtk2和openssl的rpm包只上传了centos7版本) apr-1.5.2.tar.gz apr-util-1.5.4.tar.bz2 neon-0.29.6.tar.gz(可选,neon是...rapidsvn-0.12.1.tar.gz gtk2 openssl

    Linux(CentOS6.2)下安装SVN服务

    ### Linux (CentOS 6.2) 下安装SVN服务 #### 一、概述 本文将详细介绍如何在Linux(CentOS 6.2)环境下安装SVN服务。SVN(Subversion)是一种分布式版本控制系统,广泛应用于软件开发过程中对源代码进行版本控制。...

    Linux svn-1.6.12 服务器安装文档

    这样,你就成功地在Linux SUSE 10sp3上安装并配置了SVN服务器,可以开始使用SVN进行版本控制和协作开发了。确保定期更新SVN以获取最新功能和安全修复,并根据团队的需求调整配置以提高效率和安全性。

    离线svn site-svn-1.6.5.zip

    "site-svn-1.6.5.zip"中可能包含Windows、Linux或Mac OS的客户端安装程序。按照提供的指南,运行相应的安装程序并遵循提示完成安装。 5. **配置客户端**:安装完成后,需要配置客户端以连接到SVN服务器。这通常包括...

    Linux SVN的安装使用笔记

    Linux SVN的安装使用笔记 .

    linux下svn的安装

    在本文中,我们将详细介绍如何在Linux环境下安装SVN。安装过程分为几个步骤,涉及apr、apr-util和Apache HTTP Server的安装,以及最后的Subversion安装。 首先,我们需要准备必要的安装包。在本例中,我们下载了apr...

    linux系统SVN服务器安装详细教程及安装源码

    在Linux环境下安装SVN服务器可以帮助团队有效地进行软件项目的版本控制。以下是一个详细的Linux SVN服务器安装教程。 一、安装依赖库 在安装SVN之前,需要确保系统上已经安装了必要的依赖库。对于基于Debian或...

    svn linux

    4. "svn-apache安装.doc" - 这部分可能涉及将SVN与Apache web服务器集成的教程,以便通过HTTP/HTTPS协议访问版本库。 5. "svn good.htm" - 这可能是HTML格式的文档,可能包含一些SVN的高级特性或者优化使用技巧。 6....

    linux下svn的使用

    ### Linux 下 SVN 的使用 #### 一、简介 Subversion(简称 SVN)是一种分布式版本控制系统,主要用于软件开发项目中管理源代码的历史版本。SVN 是 CVS 的替代品,在功能性和性能方面进行了改进,使得它成为了现代...

    svn-linux-安装

    根据提供的文件信息,本文将详细解析SVN在Linux环境下的安装步骤及遇到的相关问题解决方案。 ### SVN简介 Subversion(简称SVN)是一款开源版本控制系统软件,主要用于代码管理与版本控制。它允许开发者们协作开发...

    linux离线安装SVN_1.8.17服务所需安装包

    2. **解压安装包**:使用`tar`命令解压下载的压缩文件,例如`tar -zxvf linux离线安装SVN_1.8.17所需安装包.tar.gz`。 3. **编译和安装apr及apr-util**:先解压并进入apr的目录,执行`./configure && make && sudo ...

    Linux svn安装配置

    在Linux环境下安装Subversion(简称SVN),有两种主要方法:源码编译安装和使用包管理器安装。 **1. 源码编译安装** 首先,下载Subversion的源码包,解压并进入目录: ```bash tar zxvf subversion-1.3.2.tar.gz ...

    oscam-1.20-powervu_svn10660-i686-linux-gnu

    《OSCAM 1.20 powervu_svn10660 i686 Linux-gnu:解析卫星接收与解密技术》 在数字电视领域,OSCAM是一款广受欢迎的开源卫星接收软件,用于解码和共享加密卫星电视信号。标题中的"oscam-1.20-powervu_svn10660-i686...

    linux下安装SVN支持http

    linux下安装SVN支持http;linux下安装SVN支持http;linux下安装SVN支持http

    linux svn安装部署

    ### Linux SVN 安装与部署 #### 一、概述 版本控制系统在软件开发过程中扮演着极其重要的角色。Subversion(SVN)作为一种流行的集中式版本控制系统,在Linux环境下部署SVN服务器能够有效地支持团队协作,提高代码...

Global site tag (gtag.js) - Google Analytics