linux安装SVN服务器.docx
- 文档编号:27162616
- 上传时间:2023-06-27
- 格式:DOCX
- 页数:23
- 大小:500.16KB
linux安装SVN服务器.docx
《linux安装SVN服务器.docx》由会员分享,可在线阅读,更多相关《linux安装SVN服务器.docx(23页珍藏版)》请在冰豆网上搜索。
linux安装SVN服务器
linux下搭建SVN服务器完全手册
系统环境
RHEL5.4最小化安装(关iptables,关selinux)+ssh+yum
一,安装必须的软件包.
yuminstallsubversion(SVN服务器)
mysql-server(用于codestriker)
httpdmod_dav_svnmod_perl(用于支持WEB方式管理SVN服务器)
sendmail(用于配置用户提交代码后发邮件提醒)
wgetgcc-c++makeunzipperl*(必备软件包)
ntsysvvim-enhanced(可选)
验证安装版本:
[root@singledb~]# svnserve--version
二,基本的SVN服务器配置
1,新建一个目录用于存储SVN所有文件
#mkdir/home/svn
2,新建一个版本仓库
#svnadmincreate/home/svn/project
3,初始化版本仓库中的目录
#mkdirprojectproject/serverproject/clientproject/test(建立临时目录)
#svnimportproject/file:
///home/svn/project-m"初始化SVN目录"
#rm-rfproject(删除临时建立的目录)
4,添加用户
要添加SVN用户非常简单,只需在/home/svn/project/conf/passwd文件添加一个形如“username=password"的条目就可以了.为了测试,我添加了如下内容:
[users]
#harry=harryssecret
#sally=sallyssecret
pm=pm_pw
server_group=server_pw
client_group=client_pw
test_group=test_pw
5,修改用户访问策略
/home/svn/project/conf/authz记录用户的访问策略,以下是参考:
[groups]
project_p=pm
project_s=server_group
project_c=client_group
project_t=test_group
[project:
/]
@project_p=rw
*=
[project:
/server]
@project_p=rw
@project_s=rw
*=
[project:
/client]
@project_p=rw
@project_c=rw
*=
[project:
/doc]
@project_p=rw
@project_s=rw
@project_c=rw
@project_t=rw
*=
以上信息表示,只有pm有根目录的读写权,server_group能访问server目录,client_group能访问client目录,所有人都可以访问doc目录.
6,修改svnserve.conf文件,让用户和策略配置升效.
svnserve.conf内容如下:
[general]
anon-access=none
auth-access=write
password-db=/home/svn/project/conf/passwd
authz-db=/home/svn/project/conf/authz
7,启动服务器
#svnserve-d-r/home/svn
8,测试服务器
#svncosvn:
//192.168.60.10/project
Authenticationrealm:
//192.168.60.10: 3690>92731041-2dae-4c23-97fd-9e1ed7f0d18d Passwordfor'root': Authenticationrealm: //192.168.60.10: 3690>92731041-2dae-4c23-97fd-9e1ed7f0d18d Username: server_group Passwordfor'server_group': svn: Authorizationfailed(server_group没用根目录的访问权) #svncosvn: //192.168.60.10/project Authenticationrealm: //192.168.60.10: 3690>92731041-2dae-4c23-97fd-9e1ed7f0d18d Passwordfor'root': Authenticationrealm: //192.168.60.10: 3690>92731041-2dae-4c23-97fd-9e1ed7f0d18d Username: pm Passwordfor'pm': A project/test A project/server A project/client Checkedoutrevision1. (测试提取成功) #cdproject/server #vimmain.c #svnaddmain.c #svncommitmain.c-m"测试一下我的C程序,看什么看,不行啊? ? " Adding main.c Transmittingfiledata. Committedrevision2. (测试提交成功) 三,配置SVN服务器的HTTP支持 1,转换SVN服务器的密码 由于SVN服务器的密码是明文的,HTTP服务器不与支持,所以需要转换成HTTP支持的格式。 我写了一个Perl脚本完成这个工作. 脚本内容如下: #cd/home/svn/project/conf/ #catPtoWP.pl #! /usr/bin/perl #writebyhuabo,2009-11-20 usewarnings; usestrict; #openthesvnpasswdfile open(FILE,"passwd")ordie("Cannotopenthepasswdfile! ! ! \n"); #cleartheapachepasswdfile open(OUT_FILE,">webpasswd")ordie("Cannotopenthewebpasswdfile! ! ! \n"); close(OUT_FILE); #begin foreach( if($_=~m/^[^#].*=/){ $_=~s/=//; `htpasswd-bwebpasswd$_`; } } #./PtoWP.pl(先给该脚本加可执行权限,然后执行以转换密码) Addingpasswordforuserpm Addingpasswordforuserserver_group Addingpasswordforuserclient_group Addingpasswordforusertest_group 现在目录下会多一个webpasswd文件。 2,修改httpd.conf,添加关于SVN服务器的内容 编辑/etc/httpd/conf/httpd.conf,在最后添加如下信息: DAVsvn SVNPath/home/svn/project/ AuthTypeBasic AuthName"svnforproject" AuthUserFile/home/svn/project/conf/webpasswd AuthzSVNAccessFile/home/svn/project/conf/authz Satisfyall Requirevalid-user 3,启动HTTPD服务器 #servicehttpdrestart Stoppinghttpd: [FAILED] Startinghttpd: [ OK ] 4,用浏览器访问http: //192.168.60.10/project/server/测试 测试结果如下图所示: (测试成功) 四,配置邮件提醒支持 1,安装Perl模块Module: : Build #wgethttp: //search.cpan.org/CPAN/authors/id/D/DA/DAGOLDEN/Module-Build-0.36_11.tar.gz #tarxvfModule-Build-0.36_11.tar.gz #cdModule-Build-0.36_11 #perlBuild.PL #./Build #./Buildtest #./Buildinstall #cd.. 2,安装Perl模块Authen: : SASL #wgethttp: //search.cpan.org/CPAN/authors/id/G/GB/GBARR/Authen-SASL-2.15.tar.gz #tarxvfAuthen-SASL-2.15.tar.gz #cdAuthen-SASL-2.15 #perlMakefile.PL #maketest #makeinstall #cd.. 3,安装Perl模块Net: : SMTP_auth #wgethttp: //search.cpan.org/CPAN/authors/id/A/AP/APLEINER/Net-SMTP_auth-0.08.tar.gz #tarxvfNet-SMTP_auth-0.08.tar.gz #cdNet-SMTP_auth-0.08 #perlMakefile.PL #maketest #makeinstall #cd.. 4,安装Perl模块SVN: : Notify #wgethttp: //search.cpan.org/CPAN/authors/id/D/DW/DWHEELER/SVN-Notify-2.80.tar.gz #tarxvfSVN-Notify-2.80.tar.gz #cdSVN-Notify-2.80 #perlBuild.PL #./Build #./Buildtest #./Buildinstall #cd.. 5,启动邮件服务器 #servicesendmailrestart Shuttingdownsendmail: [FAILED] Startingsendmail: [ OK ] Startingsm-client: [ OK ] 6,配置自动发邮件脚本 修改post-commit脚本,以支持邮件通知功能. #cd/home/svn/project/hooks/ #vimpost-commit 内容如下: #! /bin/sh REPOS="$1" REV="$2" /usr/bin/svnnotify--repos-path"$1"--revision"$2"--tocaodaijun@--fromcaodaijun@--handler"HTML: : ColorDiff" --with-diff--smtplocalhost--smtp-userroot--smtp-pass5201314318-c"UTF-8"-gzh_CN-oraw--svnlook/usr/bin/svnlook--subject-prefix'[SVNUpdate]' (to参数代表接收邮件的地址,可以有多个,当你有多个老大的时候,这就很重要了,: )。 from参数是虚拟的,代表你的发送地址,一般情况下,这个参数不重要,但如果接收者的邮件服务器有反垃圾邮件的功能,需要判定源地址的话,这个参数是否合法就显得很重要了) 再给该脚本添加可执行权限 #chmod+xpost-commit 7,再次提交时,就会给指定邮件地址发信了。 如下图所示: 五,其它常用配置 1,强制写log脚本 配置pre-commit文件,要求用户每次更新文件都必须写log. #cd/home/svn/project/hooks/ #vimpre-commit 文件内容如下: #! /bin/sh REPOS="$1" TXN="$2" SVNLOOK=/usr/bin/svnlook LOGMSG=`$SVNLOOKlog-t"$TXN""$REPOS"|grep"[a-zA-Z0-9]"|wc-c` if["$LOGMSG"-lt5(要求的log长度,依实际需要修改)]; then echo-e"\nEmptylogmessagenotallowed.Commitaborted! "1>&2 exit1 fi 配置完成后,给本件加上可执行权限。 再提交代码时,就必须按要求写注释了,: ) 2,可修改log脚本 配置pre-revprop-change文件,此文件在showlog中修改log时会运行,得到修改的权限,否则会报错: DAVrequestfailed;it'spossiblethattherepository'spre-revprop-changehookeitherfailedorisnon-existent.Atleastonepropertychangefailed;repositoryisunchanged #cd/home/svn/project/hooks/ #vimpre-revprop-change 文件内容如下:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- linux 安装 SVN 服务器