subversion在系统管理方面涉及到的内容

简介:
subversion在系统管理方面涉及到的内容
 
预定义:新建一个目录/home/svn,将所有的库都建在这里
 
安装方式
分为两种:apache扩展和独立服务器
一、作为apache的扩展,
需要重新编译安装apache,支持web访问,但是这样运行svn较慢,身份验证由apache来完成,不需要给开发人员系统帐号
编译apache的参数
:apache2.2.6
./configure --prefix=/usr/local/apache2  --enable-module=setenvif --enable-module=rewrite --with-mpm=prefork    --enable-so --enable-dav-fs --enable-dav
最后三个参数是必须要的
 
编译subversion的参数
:subversion-1.4.5
#./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
 
因为是通过apache访问的,所以apache的运行者(nobody或者apache)要对库目录有写的权限。
chown apache.apache /home/svn
 
修改apache配置文件
LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so
 
<Location /svn>
   DAV svn
   SVNParentPath /home/svn/ //svn 库的主目录
   AuthzSVNAccessFile /home/svn/authz.conf // 权限配置文件
   AuthType Basic 
   AuthName "Subversion.zoneyump" // 输密码时候弹出的连接框提示
   AuthUserFile /home/svn/authfile // 用户配置文件
   Require valid-user // 采用何种认证
</Location>
 
创建用户svn1 ,svn2
htpasswd -c /home/svn/authfile svn1 第一次包含创建文件的操作,要带-c参数
会提示输密码
htpasswd  /home/svn/authfile svn2
不要-c参数了
 
建库
svnadmin create /home/svn/repos1
这样就建立了名为repos1的库
 
限制svn的用户权限
编辑 /home/svn/authz.conf
[repos1:/]  
svn1 = rw  
svn2 = r
[/]    
* = r
 
客户端访问
浏览器http://服务器IP/svn/repos1/ 输入用户名密码即可看到文件列表
客户端http://
不是svn://
 
二、独立服务器,
这种跟apache没关系,安装使用都比较简单,运行也相对较快
安装可以使用源码或者自带的rpm包。现在服务器上用的是自带的rpm包,可以进行升级。
以独立启动的方式来说,可以是两种:
1.作为一个daemon监听进程:启动后一直运行监听连接,客户端访问用svn方式,身份验证用svn自带的配置文件(用户不需要机器的帐号,权限管理也由配置文件来控制)
2.ssh启动svn:通过ssh访问时,ssh启动一个svn进程,操作结束后,这个svn进程就结束了,客户端访问用ssh方式,身份验证用ssh(用户需要有机器的帐号,权限由系统管理)
 
同样建立目录/home/svn,作为存放库和配置文件的地方.
创建库
svnadmin create /home/svn/repos1
这样就自动创建了一个库repos1,所在的目录是/home/svn/repos1
目录下有一些内容
conf  dav  db  format  hooks  locks  README.txt
重要的是conf目录,存放配置文件,下面的配置文件有authz  passwd  svnserve.conf三个文件
核心是svnserve.conf,其内容一般如下
[general]
anon-access = none   不允许匿名访问
auth-access = write   授权用户访问最大的权限是写
password-db = /home/svn/conf/pwd.conf 存放用户和密码的配置文件
authz-db = /home/svn/conf/authz.conf 管理用户和组权限的文件
realm = repos1 指定库名称
以后还建立库的话,做法也跟上面一样,只是改最后一句
realm = repos1 来指定库的名称
这样做的好处是实现集中的用户权限管理(多个库使用一套配置文件)
 
目录下的其他两个文件authz  passwd(authz对应authz.conf,passwd对应pwd.conf)就不需要了,可以删掉
 
1.独立的daemon方式
用户和权限都是由配置文件来控制,这点与之前的apache类似,使用虚拟帐号而不是系统帐号,但是与apache相比配置要简单很多
定义用户pwd.conf文件格式如下
[users]
svn1 = password1
svn2 = password2
格式:   用户名  =  密码
 
定义权限authz.conf文件格式如下
[groups]
admin = svn1
 
[/]
@admin = rw
 
[repos1:/]
svn1 = rw
 
[repos2:/pass]
svn2 = r
 
启动服务器
svnserve -d --listen-port 3690 -r /home/svn
一直在tcp3690端口监听,端口可以随意指定,默认是3690
 
客户端访问svn://服务器ip/repos1,如果没有启动svn,访问是不行的
 
2.ssh方式
基本上对系统什么也不用做,建库,设好权限即可
所有的用户和权限由系统控制,用户是操作系统用户,权限是操作系统设置的目录权限.
 
在机器上为所有的开发人员建帐号
为了方便在系统中增加一个svn,将所有的开发人员加入到svn
给库目录/home/svnsvn组的权限,保证开发人员可以读写文件
 
/home/svn/conf下的文件基本不起作用,但是还是需要有
存放用户密码的文件 pwd.conf 只需要为空
 
控制权限的文件authz.conf,只需要给最大的.因为更严格的权限由系统管理员来对具体目录设置,这里设了也是无效的.内容如下
[/]
* = rw
 
客户端的访问方式
svn+ssh://svn4@服务器ip/home/svn/repos1
不需要在服务器端启动程序
:
svn4是用户名
/home/svn/repos1是访问路径(注意与svn://不同,这里使用的是绝对路径名)
这句话的意思也就是svn4这个用户要访问机器上的/home/svn/repos1这个路径
   
出现问题基本是由于用户权限造成的。


本文转自yahoon 51CTO博客,原文链接:http://blog.51cto.com/yahoon/58414,如需转载请自行联系原作者
相关文章
|
5天前
|
搜索推荐 编译器 Linux
一个可用于企业开发及通用跨平台的Makefile文件
一款适用于企业级开发的通用跨平台Makefile,支持C/C++混合编译、多目标输出(可执行文件、静态/动态库)、Release/Debug版本管理。配置简洁,仅需修改带`MF_CONFIGURE_`前缀的变量,支持脚本化配置与子Makefile管理,具备完善日志、错误提示和跨平台兼容性,附详细文档与示例,便于学习与集成。
305 116
|
20天前
|
域名解析 人工智能
【实操攻略】手把手教学,免费领取.CN域名
即日起至2025年12月31日,购买万小智AI建站或云·企业官网,每单可免费领1个.CN域名首年!跟我了解领取攻略吧~
|
7天前
|
数据采集 人工智能 自然语言处理
Meta SAM3开源:让图像分割,听懂你的话
Meta发布并开源SAM 3,首个支持文本或视觉提示的统一图像视频分割模型,可精准分割“红色条纹伞”等开放词汇概念,覆盖400万独特概念,性能达人类水平75%–80%,推动视觉分割新突破。
504 45
Meta SAM3开源:让图像分割,听懂你的话
|
14天前
|
安全 Java Android开发
深度解析 Android 崩溃捕获原理及从崩溃到归因的闭环实践
崩溃堆栈全是 a.b.c?Native 错误查不到行号?本文详解 Android 崩溃采集全链路原理,教你如何把“天书”变“说明书”。RUM SDK 已支持一键接入。
695 222
|
2天前
|
Windows
dll错误修复 ,可指定下载dll,regsvr32等
dll错误修复 ,可指定下载dll,regsvr32等
137 95
|
12天前
|
人工智能 移动开发 自然语言处理
2025最新HTML静态网页制作工具推荐:10款免费在线生成器小白也能5分钟上手
晓猛团队精选2025年10款真正免费、无需编程的在线HTML建站工具,涵盖AI生成、拖拽编辑、设计稿转代码等多种类型,均支持浏览器直接使用、快速出图与文件导出,特别适合零基础用户快速搭建个人网站、落地页或企业官网。
1711 158
|
存储 人工智能 监控
从代码生成到自主决策:打造一个Coding驱动的“自我编程”Agent
本文介绍了一种基于LLM的“自我编程”Agent系统,通过代码驱动实现复杂逻辑。该Agent以Python为执行引擎,结合Py4j实现Java与Python交互,支持多工具调用、记忆分层与上下文工程,具备感知、认知、表达、自我评估等能力模块,目标是打造可进化的“1.5线”智能助手。
953 62