`
fudehai001
  • 浏览: 497170 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

subversion_server_forLinux_配置

阅读更多
第0步新增版本管理用户:

#groupadd dba
#useradd -g app -d /home/subroot -m subroot
#passwd subroot


第1步,先检查是否安装了下面软件包
#rpm -q apr apr-devel subversion neon compat-libcom_err

第2步,创建仓库 svnadmin create /home/subroot/repository

/home/subroot/repository 为所创建仓库的路径,理论上可以是任何目录

第3步,修改配置文件/home/subroot/repository/conf/svnserve.conf

代码如下:
#去掉#[general]前面的#号
[general]
#匿名访问的权限,可以是read,write,none,默认为read
anon-access = none
#认证用户的权限,可以是read,write,none,默认为write
auth-access = write
#密码数据库的路径,去掉前面的#
password-db = passwd

注意:所有的行都必须顶格,否则报错。

第4步,修改配置文件/home/subroot/repository/conf/passwd

代码如下:
[users]
subuser = subuser

注意
1. 一定要去掉[users]前面的#,否则svn只能以匿名用户登录,客户端不会出现登录窗口,除非你的anon不为none,否则将返回一个错误。
2. 这里的密码都是没有加密的,我按照一些教程所说的用htpasswd生成的密码无法使用。

第5步,启动svn服务

对于单个代码仓库
启动命令
$svnserve -d -r /home/subroot/repository --listen-host 10.0.22.230 --listen-port 3690
其中-d表示在后台运行,-r指定服务器的根目录,这样访问服务器时就可以直接用svn://服务器ip来访问了。
如果服务器有多ip的话--listen-host来指定监听的ip地址. --listen-port 3690 指定监听端口

我们可以在svn客户端中通过svn://10.0.22.230:3690来访问svn服务器


对于多个代码仓库,
我们在启动时也可以用-r选项来指定服务器根目录,但访问时需要写上每个仓库相对于svn根目录的相对路径.

比如,我们有两个代码仓库/home/repo1 和/home/repo2,我们用svnserve -d -r /home --listen-host 192.168.1.200来启动,
那么在客户端访问时可以用svn://192.168.1.200/repo1和svn://192.168.1.200/repo2来分别访问两个项目

启动完成以后,我们可以用ps aux|grep svnserv来查看是否存在svnserve进程.

第6步 开放服务器端口

svn默认端口是3690,你需要在防火墙上开放这个端口。

/sbin/iptables -A INPUT -i eth0 -p tcp --dport 3690 -j ACCEPT

/sbin/service iptables save

你也可以通过svnserve的--listen-port选项来指定一个已经开放的其他端口,不过这样的话客户端使用也必须家上端口,如svn://192.168.1.200:9999/.


第七步,使用svn客户端导入项目

推荐使用客户端 http://tortoisesvn.tigris.org/

--==============================================================================

linux架设subversion(svn)版本控制

1.需要两个文件,httpd和subversion. httpd是web服务器,用来通过web访问subversion,httpd可以在apache官方网站上下载到
2.新建一个用户:svnroot
最好不要让root用户参与到svn的权限管理和日常的运行和维护工作中来,但是下面的一些安装和配置操作还是 需要root用户来完成的,因为有些操作只有root才能做。权限问题很重要。曾经因为权限问题折腾了一天。
3.编译安装httpd (root用户操作):
//解压apache2安装包
# tar xvzf httpd-2.2.2.tar.gz
//进入解压后的目录
# cd httpd-2.2.2
//配置apache安装,前两个参数是必须要加的,你还可以根据您的需要添加其他的参数。
//后面的参数制定你要把apache安装哪里
# ./configure --enable-dav --enable-so --prefix=/usr/local/apache2/
# make
//安装
# make install
# cd /usr/local/apache2/bin
//启动apache服务
# ./apachectl start
//打开浏览器http://localhost/如果有测试页"It works!"出现则证明已经安装成功。
4.
安装Subversion
//解压SubVersion安装包 (root用户进行下面的操作)
# tar xvzf Subversion-1.3.1.tar.gz
//进入解压后的目录
# cd Subversion-1.3.1
//配置subversion安装
#./configure --with-apxs=/usr/local/apache2/bin/apxs --prefix=/usr/local/subversion
--with-apr=/usr/local/apache2 --with-apr-util=/usr/local/apache2 --with-ssl --with-zlib
--enable-maintainer-mode
# make
//安装
# make install
//创建库文件所在的目录 (svnroot用户进行下面的操作)
# mkdir /home/svnroot/repository
//进入subversion的bin目录
# cd /usr/local/subversion/bin
//创建仓库"test"
# ./svnadmin create /home/svnroot/repository/test
# cd /home/svnroot/repository/test
//看看是不是多了些文件,如果是则说明Subversion安装成功了
# ls –l
# cd /usr/local/subversion/bin
//这条语句将把路径/home/user/import下找到的文件导入到你创建的Subversion 仓库中去,
//提交后的修订版为1。
# ./svn import /home/user/import file:///home/svnroot/repository/test –m "注释"
//不让其他人有该目录的权限
# chmod 700 /home/svnroot/repository
5.修改Apache配置文件
# cd /usr/local/apadche2/bin
//启动Apache
# ./apachect1 start
# vi /usr/local/apache2/conf/httpd.conf
   //在最下面添加
   LoadModule dav_svn_module modules/mod_dav_svn.so
   LoadModule authz_svn_module modules/mod_authz_svn.so
   <Location /svn>
   DAV svn
   SVNParentPath /home/svnroot/repository/ //svn父目录
   AuthzSVNAccessFile /home/svnroot/repository/authz.conf //权限配置文件
   AuthType Basic //连接类型设置
   AuthName "Subversion.zoneyump" //连接框提示
   AuthUserFile /home/svnroot/repository/authfile //用户配置文件
   Require valid-user //采用何种认证
   </Location>
   //其中authfile是通过"htpasswd [–c] /home/svnroot/repository/authfile username password"来创建的
   //"Require valid-user"告诉apache在authfile中所有的用户都可以访问。如果没有它,
   //则只能第一个用户可以访问新建库
6.重启apache
# ./usr/local/apache2/bin/apachectl restart
//打开浏览器访问http://localhost/svn/test/,如果有东西显示就说明成功。
7.权限管理
1)增加用户
# htpasswd [-c] /home/svnroot/repository/authfile wooin
//第一次设置用户时使用-c表示新建一个用户文件。回车后输入用户密码,完成对用户的增加
# htpasswd authfile 用户名(加入新的用户)
2)权限分配
# vi /home/svnroot/repository/authz.conf
   [test:/] //这表示,仓库test的根目录下的访问权限
   wooin = rw //test仓库wooin用户具有读和写权限
   bao = r //test仓库bao用户具有读权限
   [test2:/] //test2仓库根目录下的访问权限
   wooin = r //wooin用户在test2仓库根目录下只有读权限
   bao = //bao用户在 test2仓库根目录下无任何权限
   [/] //这个表示在所有仓库的根目录下
   * = r //这个表示对所有的用户都具有读权限
   #[groups] //这个表示群组设置
   #svn1-developers = wooin, bao //这个表示某群组里的成员
   #svn2-developers = wooin
   #[svn1:/]
   #@svn1-developers = rw //如果在前面加上@符号,则表示这是个群组权限设置
将这个设置完成后。重启Apache,就可以通过
http://localhost/svn/test
这个URL来访问仓库了,当然,受权限的限制,必须是合法用户才能访问且具有相应的权限


备注:
1。apache进程的权限:因为所有跟仓库传输的操作都是通过apache进程进行的,所以即使你给svn用户设置了 很大的权限,但是apache进程没有访问仓库或者相关文件的权限也没有用,apache进程的权限设置在 /usr/local/apache2/conf/httpd.conf 文件中配置,找到文件中的这两行:
User daemon # 将daemon改为svnroot,让apache进程以svnroot的身份运行
Group daemon
2。
在/etc/profile的结尾设置一些svn启动时要做的工作
# start apache server for svn
/usr/sbin/apachectl start
export SVN_EDITOR=vi
3。/home/respository/svnroot下的文件操作权限有给svnroot.

--===============================================================================

一些备忘:
1. svn checkout http://localhost/svn/hello.world

2. svn commit 时的默认编辑器的环境变量$SVN_EDITOR=vi需要手动设定,用kate好像有问题

3. 如果linux的登录用户名密码都和svn的其中一个用户名密码相同时,在checkout的时候不会要求输 入用户名密码直接就可以checkout出来。比如:linux有个用户wooin,svn也有一个用户wooin,并且密码 都是一样的,当用wooin登录linux后,执行checkout,可以直接提取出源码文件,不用输入认证信息。

4. 在svn使用过程中牵扯到几种权限:文件系统的权限,linux系统权限,svn用户的权限,apache进程的权限。

文件系统的权限,linux系统权限:这里相同的意思,就是平时大家使用linux时文件夹和文件的访问权限。在 svn建立仓库,文件夹,配置文件的时候用svnroot用户,并将仓库权限设置为700,不允许其他用户直接通过 文件系统查看,只能由svnroot进行管理。

apache进程的权限:因为所有跟仓库传输的操作都是通过apache进程进行的,所以即使你给svn用户设置了 很大的权限,但是apache进程没有访问仓库或者相关文件的权限也没有用,apache进程的权限设置在 /usr/local/apache2/conf/httpd.conf 文件中配置,找到文件中的这两行:
User daemon # 将daemon改为svnroot,让apache进程以svnroot的身份运行
Group daemon

svn用户的权限:就是在authz.conf文件中设置的权限信息,是svn用来管理仓库访问权限的。

5. svn服务器设置有两种方式:http 和 svnserve。这里介绍的是http方法

6. 在/etc/profile的结尾设置一些svn启动时要做的工作
# start apache server for svn
/usr/sbin/apachectl start
export SVN_EDITOR=vi

7. 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
9. 重新部署SVN仓库
需要将目前的某个仓库导出,并导入到另一个仓库(可以导入到该仓库的指定目录下),
要用到以下的命令:
// 导出所有版本到stn.dump文件中
# svnadmin dump /home/svnroot/sonatina/ > stn.dump
// 或者也可以只导出其中一个版本
# svnadmin dump /home/svnroot/sonatina/ --revision 10 > stn.r10.dump
// 或者也可以导出多个版本,比如0-10版本
# svnadmin dump /home/svnroot/sonatina/ --revision 0:10 > stn.r0-10.dump

// 导入到sonatinab/trunk目录下,如果不指定--parent-dir,则会导入到根目录sonatinab/下
# svnadmin load /home/svnroot/sonatinab/ --parent-dir trunk < stn.r0-10.dump
分享到:
评论

相关推荐

    linux下subversion+apache server搭建

    总之,搭建Linux下的Subversion服务器需要对Apache服务器的配置和Subversion的工作原理有深入理解。完成上述步骤后,团队成员即可通过网络方便地进行代码的版本控制和协作开发。在实际应用中,还需要考虑安全设置、...

    subversion for SUSE Linux.rar

    本教程将深入探讨如何在SUSE Linux上安装和配置Subversion。 首先,我们需要了解SUSE Linux。SUSE是一款源自德国的开源Linux发行版,以其企业级稳定性和安全性著称。对于开发团队来说,SUSE提供了一个强大的平台来...

    subversion在centos最小化安装所需要的rpm包,包含了执行的脚本

    - 如果是从非标准源安装,可能需要先添加相应的RPM仓库,例如EPEL(Extra Packages for Enterprise Linux)仓库。 3. **执行脚本**: - 提到的"执行的脚本"可能是指配置或初始化Subversion服务器的脚本。这些脚本...

    subversion-deps-1.4.5.tar subversion-1.4.5.tar

    本篇文章将深入讲解如何在Linux环境下搭建SVN服务器,以"subversion-deps-1.4.5.tar"和"subversion-1.4.5.tar"这两个文件为基础进行安装和配置。 首先,我们需要了解这两个文件。"subversion-deps-1.4.5.tar"包含了...

    subversion 安装包与安装手册

    1. **添加EPEL仓库**:RHEL 6和7默认仓库可能不包含最新版本的Subversion,所以需要添加EPEL(Extra Packages for Enterprise Linux)仓库。运行以下命令: ```bash sudo rpm -Uvh ...

    Subversion--使用简介.

    ###### 2.1.1 安装 Subversion server for Linux (Red Hat) 在 Red Hat 系统中安装 Subversion 服务器通常涉及以下步骤: 1. 使用 `yum` 命令安装 Subversion: ```bash sudo yum install subversion ``` 2. ...

    SVN for Linux

    在Linux系统,特别是Red Hat系列的操作系统中,版本控制系统Subversion(SVN)是一个非常重要的工具,用于管理软件项目的源代码和其他文件。本教程将详细阐述如何在Linux环境下搭建SVN服务器并进行基本操作。 首先...

    linux+svn+apache安装配置部署

    根据提供的文件信息,我们可以将整个过程分为两个主要部分:第一部分是关于如何在Linux系统上独立安装Subversion(简称SVN)以及如何进行基本配置;第二部分则涉及到如何结合Apache Web服务器来部署SVN服务器。 ###...

    Linux下SVN详细配置配置[参照].pdf

    在Linux环境下配置Subversion(简称SVN)是一种常见的版本控制系统管理方式,尤其适用于团队协作开发。这篇文档详细介绍了如何在Linux上安装、配置SVN以及Apache HTTP服务器,以便通过WebDAV协议提供SVN服务。 首先...

    Linux下SVN详细配置配置借鉴.pdf

    在Linux系统中,Subversion(SVN)是一个广泛使用的版本控制系统,用于管理软件项目的源代码和其他文件。Apache HTTP Server(通常简称为Apache)与Subversion结合使用,可以提供WebDAV协议,允许用户通过HTTP或...

    Linux下SVN详细配置配置[归类].pdf

    总结来说,Linux上的SVN配置涉及多个步骤,从安装依赖到配置Apache和Subversion,再到设置版本库和权限。正确配置后,开发者可以通过WebDAV协议在任何地方方便地进行版本控制操作,极大地提高了团队协作效率。在实际...

    install-svn-for-linux-.rar_unix部署svn

    在Linux系统中,Subversion(SVN)是一个广泛使用的版本控制系统,用于管理软件项目源代码和其他文件的变更。本文将详细介绍如何在Unix环境下部署SVN服务端,以便于团队协作和版本控制。以下内容主要基于提供的...

    Linux服务器软件安装指导(JDK,Tomcat,SVN,MYSQL,JIRA等)

    在Linux环境下,安装和配置服务器软件是系统管理的重要部分,尤其对于Java开发者和运维人员来说,JDK、Tomcat、SVN、MySQL和JIRA等软件是常用的基础组件。以下是对这些软件在Linux系统下安装和配置的详细步骤: 一...

    svnbook-1.4-final-zh(for Subversion 1.4 中文版).pdf

    - **Apache配置**:配置Apache服务器以支持Subversion服务。 #### 七、定制Subversion体验 - **运行配置区**:设置个性化选项,如语言偏好等。 - **外置比较工具**:集成第三方比较工具,提高效率。 #### 八、...

    SVN_for_RedHat_安装手册

    3. **发行版本**:使用`lsb_release -a`命令确认系统发行版,如`Red Hat Enterprise Linux Server release 5.4 (Tikanga)`,这有助于确保安装的软件与系统版本相匹配。 4. **确定主机名**:主机名用于网络识别,...

    linux安装nginx和tomcat

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } } ``` 2. **启动Nginx服务** 启动Nginx服务并验证其运行状态。 ```bash /usr/local/nginx/sbin/nginx ``` #### 五、总结 通过以上...

    Centos安装升级SVN1.8.9

    安装完开发工具后,我们来添加EPEL(Extra Packages for Enterprise Linux)仓库。EPEL提供了一些不在默认CentOS仓库中的额外软件包。执行以下命令: ```bash sudo rpm -Uvh ...

    使用reviewboard和svn进行代码审查配置全过程文档

    1. 下载并安装SVN服务器软件,如VisualSVN Server for Windows或CollabNet Subversion Server for Linux。 2. 配置SVN仓库,创建一个或多个项目仓库,用于存放代码。 3. 设置访问控制,通过用户账户和权限管理来控制...

    linux安装包linux安装包linux安装包

    1. 安装Apache:使用包管理器(如`apt` for Debian/Ubuntu或`yum` for CentOS/RHEL)来安装Apache服务器,例如: ``` sudo apt install apache2 或 sudo yum install httpd ``` 2. 安装MySQL:同样,通过包...

Global site tag (gtag.js) - Google Analytics