linux下搭建SVN服务器完全手册
- 格式:docx
- 大小:481.81 KB
- 文档页数:13
svn服务器组建1. 系统redhat52. 软件为apr-1.3.8.tar.gzapr-util-1.3.9.tar.gzhttpd-2.2.4.tar.gzsqlite-amalgamation-3.6.17.tar.gzsubversion-1.6.5.tar.bz2subversion-deps-1.6.5.tar.bz2下载地址wget /apr/apr-1.3.8.tar.gzwget /apr/apr-util-1.3.9.tar.gzwget /apache-mirror/httpd/httpd-2.0.63.tar.gzwget /sqlite-amalgamation-3.6.13.tar.gzwget /downloads/subversion-1.6.5.tar.bz2wget /downloads/subversion-deps-1.6.5.tar.bz23.安装1)安装apr-1.3.8.tar.gz 先将文件解压到出来我是在/usr/src中[root@bogon drug22]#tar –zvxf apr-1.3.8.tar.gz -C /usr/src/[root@bogon drug22]# cd /usr/src/apr-1.3.8/[root@bogon apr-1.3.8]# ./configure[root@bogon apr-1.3.8]# make[root@bogon apr-1.3.8]# make install2)安装apr-util-1.3.9.tar.gz[root@bogon drug22]#tar –zvxf apr-util-1.3.9.tar.gz -C /usr/src/[root@bogon drug22]# cd /usr/src/apr-util-1.3.9[root@bogonapr-util-1.3.9]#./configure –-prfefix=/usr/local/apr -–with-apr=/usr/local/apr[root@bogon apr-util-1.3.9]# make[root@bogon apr-util-1.3.9]# make install注:sqlite这里可以不用安装如果下面提示安装在装直接make和make install 即可3)安装httpd-2.2.4.tar.gz[root@bogon drug22]#tar –zvxf ahttpd-2.2.4.tar.gz -C /usr/src/[root@bogon drug22]# cd /usr/src/httpd-2.2.4[root@bogon httpd-2.2.4]# ./configure –prfefix=/usr/local/apache --enable-dav --enable-so--enable-maintaer-mode --enable-ssl --with-apr=/usr/local/apr/bin/apr-1-config--with-apr-util=/usr/local/bin/apu-1-config[root@bogon ahttpd-2.2.4]# make[root@bogon httpd-2.2.4]# make install启动apache服务[root@bogon ~]# ../usr/local/apache/bin/apachectl start打开网页127.0.0.1 确定服务开启4)安装svn包subversion-1.6.5.tar.bz2subversion-deps-1.6.5.tar.bz2 找了很多资料说这两个都要下载且要保证版本一样[root@bogon drug22]#tar –jvxf subversion-1.6.5.tar.bz2 -C /usr/src/[root@bogon drug22]#tar –jvxf subversion-deps-1.6.5.tar.bz2 -C /usr/src/[root@bogon drug22]# cd /usr/src/subversion-1.6.5[root@bogon subversion-1.6.5]# ./configure --with-apxs=/usr/localapache/bin/apxs --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr (这里就是用subversion-1.6.5包里面的文件替换相应文件中的文件)[root@bogon subversion-1.6.5]# make[root@bogon subversion-1.6.5]# make install查看subversion版本是否为subversion-1.6.5 是表示安装成功[root@bogon ~]# svnserve --version5)修改apache配置文件[root@bogon ~]# vi /usr/local/apache/conf/httpd.conf查看中已经有了svn库文件# LoadModule foo_module modules/mod_foo.soLoadModule dav_svn_module modules/mod_dav_svn.soLoadModule authz_svn_module modules/mod_authz_svn.so#修改User daemonGroup daemon为(修改为系统其中的一个用户名)User apacheGroup apache在最后加入<Location /svn>DA V svnSVNParentPath /svn/project(指向路径)AuthType BasicAuthName "SVN Repository" (欢迎界面命名)AuthUserFile /svn/passwd.conf (密码验证路径)AuthzSVNAccessFile /svn/authz.conf(控制文件路径)Require valid-user (验证有效用户才能登入)</Location>然后ESC 建在:wq保存退出(SVNParentPath与SVNPath这两者的区别:前者是多库的状态,后者是单库的状态)现在apache配置文件已好创建svn存储库库名为linux_svn[root@bogon ~]# cd /[root@bogon /]# mkdir linux_svn[root@bogon /]# cd /lilib/ linux_svn/[root@bogon /]# cd /lilib/ linux_svn/[root@bogon /]# cd /linux_svn/[root@bogon linux_svn]# mkdir test[root@bogon linux_svn]# ../usr/local/bin/svnadmin create /linux_svn/test/rrr [root@bogon linux_svn]#库创建成功配置apache控制文件和密码文件[root@bogon /]# cd /linux_svn/[root@bogon linux_svn]# htpasswd -c passwd.conf test1(test1为用户名,下面输入两次密码)控制文件[root@bogon linux_svn]# touch auth.conf[root@bogon linux_svn]# vi auth.conf键入[groups]Admin=test1Develop=(用户名见用,隔开)[/]@admin=rw@develop=rw[rrr:/]test1=rw[/]这是对于库rrr的控制认证[/]*=r6)修改/linux_svn/test文件的权限(在下一次建库时要重新修改权限)[root@bogon /]# chown -R apache:apche /linux_svn/test/root@bogon /]# chmod -R 700 /linux_svn/test/7)设置apache 和svn服务开机自动启动[root@bogon /]# vi /etc/rc.local键入/usr/local/bin/svnserve -d -r /svn/project/usr/local/apache/bin/apachectl start8)客户端连接时http://ip地址/svn/版本库名称(rrr)输入库相应的用户密码即可。
Linux下SVN操作命令手册1. 创建版本库(服务器端或本地创建版本库)# mkdir SVN 在根目录下/root 创建空文件SVN# cd SVN 进入SVN文件目录下# svnadmin create --fs-type fsfs MyNewRepository //创建版本库MyNewRepository# cd MyNewRepository 进入MyNewRepository文件目录下注:svnadmin是有用的subversion系统管理命令,使用svnadmin help查看在线帮助信息。
subversion的手册推荐的项目目录结构,project/+ branches/+ tags/+ trunk/+ dir1/+ file1+ file2+ dir2/2. 导入、导出文件或项目svn import/export svn://192.168.10.81/ecusvn import project file:///repository_name/project -m "Comment"svn import project http://host/svn_dir/repository_name/project -m "Comment"检出文件或项目svn checkout(co) --username *** --password *** svn://192.168.10.81/ecu //远程服务器检出svn checkout file:///home/xie/repositoryname/project/trunk project //本地服务器检出3. 将新的代码或文件提交到版本库a. svn add file //将文件标记为要增加的. 例如:svn add test.php(添加test.php)b. svn commit(ci) filename –m “logmessage” [-N] [–no-unlock] path //如果选择了保持锁,就使用–no-unlock开关4. 加锁解锁svn lock PATH -m “LockMessage“ [–force] //例如:svn lock -m “lock test file“ test.phpsvn unlock PATH5. 更新本地副本到某个版本svn update(up) filepath –r m(版本m)例如:svn update //如果后面没有目录,默认将当前目录以及子目录下所有文件都更新到最新版本svn update test.php -r 200 //将版本库中的文件test.php还原到版本200svn update test.php //更新与版本库同步。
Linux SVN 搭建(ubuntu 10.04)1、安装subversion软件sudo apt-get install subversion2、建立一个目录作为SVN代码库管理的根目录(例:/home/svnadmin/svnsources/),只是一个普通目录,实际上是通过svnserve –d –r /home/svnadmin/svnsources/启动服务后暴露给网内其它机器的一个服务接入点:mkdir /home/svnadmin/svnsources/3、在SVN代码库管理的根目录下(/home/svnadmin/svnsources/)下建立一个代码库(repo),名称为testrepo:svnadmin create /home/svnadmin/svnsources/testrepo4、启动svn自带的svnserve服务供网内其它计算机使用:svnserve -d -r /home/svnadmin/svnsources此时便可以在局域网中通过svn://192.168.0.142/testrepo来访问testrepo这个代码库的内容了注:可以加--listen-port参数来指定端口(默认为3690),如:svnserve -d --listen-port 3691 -r /home/svnadmin/svnsources启动服务然后在局域网中通过svn://192.168.0.142:3691/testrepo来进行访问5、建立一个目录(例:/home/gli/projectImport),把代码放置到主干(trunks)下,如project 为一份需要管理的代码:projectImport|--branches|--tags|--trunks|--project注:这个并不是必须的,只是采用这种结构管理代码是比较合理的一种方式6、然后将这个目录(/home/gli/projectImport)导入到testrepo中去管理:svn import -m"init testrepo" /home/gli/projectImport/ file:///home/svnadmin/svnsources/testrepo/7、拉出一个分支来进行开发(svn copy source destination):svn copy -m"init from trunks" file:///home/svnadmin/svnsources/testrepo/trunks/project file:///home/svnadmin/svnsources/testrepo/branches/project注:其中source可以是本地工作副本,destination为代码库中的URL8、当开发到一个稳定版本后或某个阶段后,需要打一些标签(tags)以方便管理:svn copy -m"init from trunks" file:///home/svnadmin/svnsources/testrepo/branches/project file:///home/svnadmin/svnsources/testrepo/tags/project9、若有另一个项目需要管理,可重复步骤5到8来进行开发管理。
本文由我司收集整编,推荐下载,如有疑问,请与我司联系Linux 搭建svn服务器2015/11/08 0 一、安装svn服务器端yum install subversion 从镜像下载安装svn服务器端如果后面执行“svnadmin create /usr/local/svn/sunny”提示错误:“command not found”,把这句“mount /dev/cdrom /media/cdrom/ ”话挂在这句“yum install subversion”之前cd /usr/local/ //进入目录,准备创建svn目录mkdir svn //创建一个svn目录chmod -R 777 svn //修改目录权限为777svnadmin create/usr/local/svn/sunny //创建一个svn版本仓库sunny(sunny可以随便起名字) 到这一步了!!!!cd svn/sunny/conf //进入sunny版本仓库下的配置文件目录下面要修改这个目录下的三个配置文件(1)vi svnserve.conf //配置版本库信息和用户文件和用户密码文件的路径、版本库路径把# anon-access = read# auth-access = write# password-db = passwd//这四行,前面的#号和空去掉(注意去掉#要顶写,不要留有多余空),变成anon-access = none //改成noneauth-access = writepassword-db = passwdrealm = sunny //改成自己的版本库保存(2)vi authz //文件,创建svn组和组用户的权限[group]sunny = gep,wce //创建一个sunny的组,并指定两个用户gep和wce[/] //制定根目录下的权限@sunny = rw //sunny组用户权限为读写* =r //其他用户只有读权限保存退出(3) vi passwd //创建或修改用户密码[users]gep = 123456 //用户名为gep的用户的密码为123456wce = 123456 //用户名为wce 的用户的密码为123456保存退出启动svn:svnserve -d -r /usr/local/svn/ //这里采用多版本库的方式启动如果是单版本库可以svnserve -d -r /usr/local/svn/sunny添加一行然后要设置自启动vi /etc/rc.local 打开自启动文件添加/usr/bin/svnserve -d -r /usr/local/svn/到此为止可以从服务端检出文件了.svn命令:netstat -tnl |grep :3690查看svn是否启动ps aux |grep ‘svn’ 查找所有svn启动的进程kill -9 2505 杀死2505这个查找到的svn进程svn checkout svn://172.19.5.2/sunny /data0/htdocs/blog //检出一份版本库文件到指定目录svn up //更新文件自动更新在vi/usr/local/svn/sunny/hooks/post-commit中加入#!/bin/sh#设置一些变量SVN=/usr/bin/svnWEB=/home/testsvn #要更新的目录export LANG=en_US.UTF-。
linux下搭建SVN服务器完全手册ubuntu14.0 + ssh + yum一,安装必须的软件包.yum install subversion (SVN服务器)mysql-server (用于codestriker)httpd mod_dav_svn mod_perl (用于支持WEB方式管理SVN服务器)sendmail (用于配置用户提交代码后发邮件提醒)wget gcc-c++ make unzip perl* (必备软件包)ntsysv vim-enhanced (可选)二,基本的SVN服务器配置1,新建一个目录用于存储SVN所有文件# mkdir /home/svn2,新建一个版本仓库# svnadmin create /home/svn/project3,初始化版本仓库中的目录# mkdir project project/serverproject/client project/test (建立临时目录)# svn import project/file:///home/svn/project -m "初始化SVN目录"# rm -rf project (删除临时建立的目录)4,添加用户要添加SVN用户非常简单,只需在/home/svn/project/conf/passwd文件添加一个形如“username=password"的条目就可以了.为了测试,我添加了如下内容:[users]# harry = harryssecret# sally = sallyssecretpm = pm_pwserver_group = server_pwclient_group = client_pwtest_group = test_pw5,修改用户访问策略/home/svn/project/conf/authz记录用户的访问策略,以下是参考:[groups]project_p = pmproject_s =server_groupproject_c =client_groupproject_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 = noneauth-access = writepassword-db =/home/svn/project/conf/passwdauthz-db =/home/svn/project/conf/authz7,启动服务器# svnserve -d -r /home/svn8,测试服务器# svn co svn://192.168.60.10/projectAuthentication realm:<svn://192.168.60.10:3690> 92731041-2dae-4c23-97fd-9e1ed7f0d18dPassword for 'root':Authentication realm:<svn://192.168.60.10:3690> 92731041-2dae-4c23-97fd-9e1ed7f0d18dUsername: server_groupPassword for 'server_group':svn: Authorization failed ( server_group 没用根目录的访问权 )# svn co svn://192.168.60.10/projectAuthentication realm:<svn://192.168.60.10:3690> 92731041-2dae-4c23-97fd-9e1ed7f0d18dPassword for 'root':Authentication realm:<svn://192.168.60.10:3690> 92731041-2dae-4c23-97fd-9e1ed7f0d18dUsername: pmPassword for 'pm':A project/testA project/serverA project/clientChecked out revision 1. ( 测试提取成功 )# cd project/server# vim main.c# svn add main.c# svn commit main.c -m "测试一下我的C 程序,看什么看,不行啊??"Adding main.cTransmitting file data .Committed revision 2. ( 测试提交成功 )三,配置SVN服务器的HTTP支持1,转换SVN服务器的密码由于SVN服务器的密码是明文的,HTTP服务器不与支持,所以需要转换成HTTP支持的格式。
在linux下安装配置svn独立服务器subversion(以下简称svn)是近年来崛起的版本管理工具,是cvs的接班人。
svn服务器有2种运行方式:独立服务器和借助apache。
2种方式各有利弊。
svn存储版本数据也有2种方式:BDB和F SFS。
因为BDB方式在服务器中断时,有可能锁住数据,所以还是FSF S 方式更安全一点。
1. svn服务器安装操作系统: Redhat LinuxAS4安装包获取:下载/downloads/subversion-1.4.0.t ar.gz和/downloads/subversion-deps-1.4.0.tar.gz。
编译:以root用户登录。
将subversion-1.4.0.tar.gz和subversion-deps-1.4.0.t ar.gz传到服务器。
tar xfvz subversion-1.4.0.tar.gztar xfvz subversion-deps-1.4.0.tar.gzcd subversion-1.4.0./configure --prefix=/opt/svn --without-berkeley-db --with-zlib(注:以svnserve方式运行,不加apache编译参数。
以fsfs格式存储版本库,不编译berkeley-db)make cleanmakemake installvi /etc/profile,在/etc/profile最后加入:PA TH=$PA TH:/opt/svn/binexport PATH测试:svnserve --version如果显示如下,安装成功:svnserve, version 1.4.0 (r21228)compiled Oct 12 2006, 10:18:56Copyright (C) 2000-2006 CollabNet.Subversion is open source software, see /This product includes software developed by CollabNet (/).The following reposit ory back-end (F S) modules are available:* fs_fs : Module for working with a plain file (FSF S) reposit ory.2. svn配置建立版本库目录,可建多个:mkdir -p /opt/svndat a/repos1mkdir -p /opt/svndat a/repos2建立版本库:svnadmin create /opt/svndata/repos1svnadmin create /opt/svndata/repos2修改版本库配置文件:版本库1:vi /opt/svndat a/repos1/conf/svnserve.conf内容修改为:[general]anon-access = noneauth-access = writepassword-db = /opt/svn/conf/pwd.confauthz-db = /opt/svn/conf/authz.confrealm = repos1版本库2:vi /opt/svndat a/repos2/conf/svnserve.conf内容修改为:[general]anon-access = noneauth-access = writepassword-db = /opt/svn/conf/pwd.confauthz-db = /opt/svn/conf/authz.confrealm = repos2即除realm = repos2外,其他与版本库1配置文件完全相同。
Linux下搭建 SVN 服务器搭建步骤:1.在命令行输入yuminstallsubversion安装软件包2.安装之后可以输入svn--help查看svn的使用方法3.创建svn版本库目录#mkdir-p/var/svn4.创建版本库#svndamincreate/var/svn执行这个命令之后会在/var/svn/目录下生成一些文件5.进入conf目录(该版本库的配置文件存放目录)authz文件是权限控制文件passwd文件是密码文件svnserve.conf文件是svn服务器配置文件6.设置账号密码#vipasswd在[user]块中添加用户和密码,格式:账号=密码,如arron=1234567.设置权限,修改用户访问策略#viauthz在末尾添加如下代码:[/]arron=rww=r意思是版本库的根目录对arron有读写权限,w只有读权限。
当用户很多的时候可以利用groups。
8.修改svnserve.conf文件,让用户和策略配置生效#visvnserve.conf将文件中的下面几行注释去掉:anon-access=readauth-access=writepassword-db=passwdauthz-db=authz9.启动服务器#svnserve-d-r/var/svnsvn默认的是3690端口,可以通过netstat-na查看该端口是否启用或者占用。
当然也可以在上面的命令后面再加--listen-port端口号指定端口10.测试(服务器上测试)#svncosvn://ip地址(客户端)下载svn客户端(TortoiseSVN),选择一个测试文件夹右键选择checkout,填写svn地址,输入密码OK即可。
下面是两种防火墙开启和关闭的方法:(1)重启后生效开启:#chkconfigiptableson关闭:#chkconfigiptablesoff(2)即时生效,重启后失效开启:#serviceiptablesstart关闭:#serviceiptablesstopiptables查看防火墙状态:#/etc/init.d/iptablesstatus 暂时关闭防火墙:#/etc/init.d/iptablesstop重启iptables:#/etc/init.d/iptablesrestart。
linux搭建svn服务器的⽅法步骤⼀:安装svnyum install -y subversion⼆:创建仓库1:创建仓库⽬录mkdir -p /var/project/test2:创建仓库svnadmin create /var/project/test创建成功后,在/var/project/test⽬录下如下⽬录:drwxr-xr-x. 2 root root 51 1⽉ 30 13:26 confdrwxr-sr-x. 6 root root 4096 1⽉ 30 13:26 db-r--r--r--. 1 root root 2 1⽉ 30 13:26 formatdrwxr-xr-x. 2 root root 4096 1⽉ 30 13:26 hooksdrwxr-xr-x. 2 root root 39 1⽉ 30 13:26 locks-rw-r--r--. 1 root root 229 1⽉ 30 13:26 README.txtconf⽬录下是svn的配置⽬录,其中包括:-rw-r--r--. 1 root root 1080 1⽉ 30 13:26 authz #权限控制-rw-r--r--. 1 root root 309 1⽉ 30 13:26 passwd #密码管理-rw-r--r--. 1 root root 3090 1⽉ 30 13:26 svnserve.conf #SVN服务进程配置三:svn配置1:权限配置(/var/project/test/conf/authz)#⽤户分组(admin->管理员,development ->开发 other->其他)[groups]admin = test1 #管理员⽤户test1development = test2,test3 #开发⽤户test2,test3other = test4,test5,test6 #其他⽤户test4,,test5,test6#权限配置[/]@admin = rw #管理员读写权限@development = rw #开发读写权限@other = r #其他读权限test7 = rw #test7⽤户读写权限2:密码配置(/var/project/test/conf/passwd)#密码配置,格式为⽤户名=密码,密码为明⽂[users]test1 = test1test2 = test2test3 = test3test4 = test4test5 = test5test6 = test6test7 = test73:SVN服务进程配置(/var/project/test/conf/svnserve.conf)[general]anon-access = none #匿名⽤户⽆权访问auth-access = write #认证⽤户可读写password-db = passwd #指定⽤户认证密码⽂件authz-db = authz #指定权限配置⽂件四:启动svn服务(默认端⼝号3690)复制代码代码如下:svnserve -d -r /var/project #-d 服务后台运⾏ -r 指定⼯作⽬录,/var/project表⽰指定⼯作⽬录,注意不能指定仓库名地址(/var/project/test)指定端⼝启动svnsvnserve -d -r /var/project --listen-port 3691五:关闭防⽕墙,或开启指定端⼝号1:关闭防⽕墙systemctl stop firewalld2:开启指定防⽕墙#开启3690端⼝firewall-cmd --zone=public --add-port=3690/tcp --permanent#刷新配置firewall-cmd --reload六:客户端连接并上传⽂件windows上连接svn1:新建⼀个⽬录,右击选择svn 检出2:在版本库上填写linux的svn地址 svn://ip:3690/仓库名 (这⾥的仓库名不是/var/project/test⽽是/test)2:填写⽤户名密码这时候我们可以看到此⽬录下⽣成了⼀个.svn⽂件,说明我们已经连接上了linux上的svn服务器3:上传⽂件现在我们新建⼀个test.txt⽂件,在⾥⾯随便填⼀些信息(1)右击选择add然后选择test.txt⽂件,点击确定,这时候我们会看到test.txt⽂件上会多了⼀个加号(2):上传右击选择提交填写备注选择要上传的⽂件后点击确定这时候我们可以看到test.txt⽂件上的加号会变成绿⾊的对号,表⽰上传成功但是这时候我们发现我们在/var/project/test⽬录下根本就没有找到我们上传的⽂件,这是为什么呢?难道我们没有上传成功,这是由于把⽂件上传到SVN版本库后,上传的⽂件不再以⽂件原来的格式存储,⽽是被svn以它⾃定义的格式压缩成版本库数据,存放在版本库中,svn服务器版本库有两种格式,⼀种为FSFS,⼀种为BDB这时候我们就需要在linux中实现检出4:检出svn checkout svn://192.168.11.201/test /data/test #svn://192.168.11.201/test表⽰需要检出的仓库地址 /data/test表⽰需要检出到哪个⽬录下这是我们可以在/data/test⽬录下看到我们之前在客户端上传的⽂件,但是现在问题⼜来了,我们在客户端上传⽂件之后,不可能每次都在服务器进⾏检出操作吧,那么如何进⾏⾃动检出呢?5:⾃动检出配置在/var/project/test/hooks⽬录下新建⼀个post-commit⽂件,post-commit⽂件添加内容为:#!/bin/shREPOS="$1" #仓库REV="$2" #版本号export.UTF-8 #编码SVN=/usr/bin/svn #svn地址WEB=/data/test #要更新的项⽬⽬录$SVN update $WEB --username test1 --password test1 #--username test1表⽰设置⽤户名 --password test1表⽰设置密码将post-commit设置为可执⾏chmod +x /var/project/test/hooks/post-commit到此⾃动检出配置完成,不过注意,第⼀次的时候需要⼿动检出,之后就不需要了,到此linux搭建svn服务器完成以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
subversion在安装的时候,要求相关软件的版本一致,而不是说软件版本最新就最好.下面是我安装的相关版本.httpd-2.2.3.tar.gz ,subversion-deps-1.4.0.tar.gzsubversion-1.4.0.tar.gz3:安装准备mkdir /subversioncp httpd-2.2.3.tar.gz /subversion/cp subversion-deps-1.4.0.tar.gz /subversion/cp subversion-1.4.0.tar.gz /subversion/cd /subversion/tar zxvf httpd-2.2.3.tar.gztar zxvf subversion-deps-1.4.0.tar.gztar zxvf subversion-1.4.0.tar.gz4:httpd的安装.cd /subversion/httpd-2.2.3./configure --prefix=/usr/local/apache2 --enable-so --enable-davmake && make installcd /usr/local/apache2/bin/./apachectl start这个时候,打开浏览器,输入http://localhost/,如果浏览器出现It Works,则说明httpd安装成功了.5:subversion的安装cd /subversion/subversion-1.4.0./configure --with-apxs=/usr/local/apache2/bin/apxs --with-apr=/usr/local/apache2/ --with-apr-util=/usr/local/apache2/ --prefix=/usr/local/subversion --with-ssl --with-zlib --enable-maintianer-modemake && make install5 )配置apache 支持svn# vi / usr/local/apache2/conf/httpd.conf在文件末尾加上例子:<Location /svn>(svn为通过地址访问subversion的根目录名,以svn为例:http://xxx.xxx.xxx.xxx/svn/具体库名)DAV svnSVNParentPath /subversion/project (此处配置你的版本库根目录,project不是上面提到的具体库名)AuthType BasicAuthName "Subversion repository" (此处字符串内容修改为提示对话框标题)AuthUserFile /subversion/passwd (此处修改为访问版本库用户的文件,用apache 的htpasswd命令生成)AuthzSVNAccessFile /subversion/authfile (此处修改为访问版本库权限的文件)Require valid-user</Location>6 )建立版本库先创建版本根目录# mkdir -p /subversion/project/test/usr/local/subversion/bin/svnadmin create /subversion/project/test进入到版本库 test中执行ls# cd /subversion/project/test# ls 后看到以下文件夹及文件,则表示建库成功conf dav db format hooks locks README.txt7 ) 建立访问库用户文件# /usr/local/apache2/bin/htpasswd –cm /subversion/passwd liruixuan(第一次添加用户需先创建文件,所以有参数-c,以后添加用户可以不用添加参数;linux是大小写敏感的,一定要注意)按照提示输入密码8 )建立访问库权限文件# vi /subversion/authfile内容按照以下格式[groups] //此语句块是为了将用户分组,为后面权限分配提供方便,这里分了两组admin = liruixuan[/]@admin = rw //admin组对仓库有读写权限9)重启apache#cd /usr/local/apachee/bin/apachectl restart现在可以用浏览器浏览linux下的仓库test了,http://ip/svn/test。
自己摸索了几天,今天终于小有成就!从零基础逐渐壮大,收获还是颇丰的!系统环境:虚拟机中Red Hat Enterprise Linux 4客户端windows: TortoiseSVN-1.6.5.16974-win32-svn-1.6.5.msi需要的软件包:subversion-1.6.5.tar.bz2apr-1.3.8.tar.gz apr-util-1.3.9.tar.gzsqlite-amalgamation-3.6.13.tar.gzhttpd-2.2.4(不需要支持http访问的可以不安装)文章将阐述全过程,不需要支持http的可以不配置appche接下来的安装都是在root身份下安装apache#tar -zxvf httpd-2.2.4.tar.gz#cd httpd-2.2.4.tar.gz#./configure --prefix=/usr/local/apache 此处将会在后面的make时创建--enable-dav --enable-so --enable-modules=most注:--enbalce-dav 选项一定要加上启动apache#/usr/local/apache/bin/apachectl start打开浏览器http://192.168.58.xxx 如果有显示"It works!"则证明已经安装成功注:其中IP为安装apache机器的IP 也就是svn服务器的IP#make#make install安装apr apr-util#tar -zxvf apr-1.3.8.tar.gz注:解压时也可在此指定解压路径当然了安装时要进入其中#cd apr-1.3.8#./configure --prefix=/usr/local/apr 此路径为最终安装路径留个印象后面能用到#make#make install#tar -zxvf apr-util-1.3.9.tar.gz#cd apr-util-1.3.9.tar.gz#./configure=/usr/local/apr-util --with-apr=/usr/local/apr 提供apr支持 =后面为apr安装路径#make#make install安装 sqlite#tar -zxvf sqlite-amalgamation-3.6.13.tar.gz#cd sqlite-3.6.13#./configure --prefix=/usr/local/sqlite#make#make install安装svn#tar -zxvf subversion-1.6.5.tar.bz2#cd subversion-1.6.5#./configure --prefix=/usr/local/svn--with-paxs=/usr/local/apache/bin/apxs--with-apr=/usr/local/apr--with-apr-util=/usr/local/apr-util--with-sqlite=/usr/local/sqlite--with-zlib=/usr/local/zlib 此处地址不定看看你zlib的安装路径在哪把它写在这没有的话自己装一个路径写这--with-ssl--enable-maintainer-mode#make#make install注:--with-zlib=/...后面不写路径会报错svn服务器安装结束安装svn客户端windows 下安装TortoiseSVN-1.6.5.16974-win32-svn-1.6.5.msi 常用软件安装方法SVN配置建立版本库#mkdir -p /opt/svn#/usr/bin svnadmin create /opt/svn/repository#ls -l /opt/svn/repository有内容显示说明版本库建立成功#vi /opt/svn/repository/conf/svnserve.conf修改如下内容:并把每行的#去掉[general]anon-access = noneauth-access = writepassword-db = /opt/svn/repository/conf/passwd 此为系统自动生成文件,但要修改过之后才能生效authz-db = /opt/svn/authz.conf 此文件还没有创建但系统已经为此自动生成了一个文件,路径同上我用我自己创建的realm = repository创建svn用户此用户也就是客户端的登陆用户#htpasswd -c /opt/svn/htpasswd admin之后体统会提示输入密码、校验密码注:第一次创建svn用户时要加 -c 意思是:如果htpasswd存在将覆盖写入往后再创建svn用户时也是执行此命令不过不用加 -cadmin 为用户名标识登陆用户例:新增加用户user#htpasswd /opt/svn/htpasswd user用户配置文件#vi /opt/svn/repository/conf/passwd在最下面添加两行代码格式为:用户名 = 密码admin = admin 前不要加# 、留空格user = user权限配置文件#vi /opt/svn/authz.conf写入如下代码[groups]admin = admin,user[/]@admin = rw 代表admin的所有组员有读写权限注:admin组里面有admin和user组员其中有一个以上的组员时要用逗号隔开这一部分自己可以找资料看看设计内容很多,我只建了一个版本库,还有多个版本库的设置,版本库下的具体目录权限设置启动svn服务#svnserver -d --listen-port 9999 -r /opt/svn/repository注:启动时也是有名堂的可以找资料看看-d 后台运行9999是要监听的端口-r 后面的是版本库路径#ps -ef | grep svnserve 查看svn有没有启动成功成功显示root 5088 1 0 Jul05 ? 00:00:00 svnserve -d --listen-port 9999 -r /opt/svn/repository客户端登陆右键单击某个文件夹点击check out输入URL:svn://192.168.58.XXX:9999/opt/svn/repository其中IP为启动svn服务的机器的IP不用支持http的下面范围内可以不用理会/***********************************/配置apache#vi /usr/local/apache/conf/httpd.conf做如下修改:listen 80 如果是以root用户启动apache此处不用修改其他用户启动的要修改大于1024的否则报错# Example:# LoadModule foo_module modules/mod_foo.soLoadModule dav_module modules/mod_dav.soLoadModule dav_svn_module modules/mod_dav_svn.soLoadModule authz_svn_module modules/mod_authz_svn.so注:此段代码我的没有我自己添加的因为后面启动apache时报:Invalid command 'DAV', perhaps mis-spelled or defined by a module not included in the server configuration 别光添加代码还要确保此文件上级目录下的 modules 里面有相应的模块没有的话另外下载其他的 httpd-xxx-xxx 解压安装把其中的相应模块拷贝过来User svnGroup svnServerName 192.168.58.xxx IP设置svn服务器的IP把DocumentRoot "/usr/local/apache/htdocs"改为DocumentRoot "/opt/svn/repository"把<Directory "/usr/local/apache/htdocs">改为<Directory "/opt/svn/repository">另外在最下面添加:<Location /opt/svn>DAV svn 如果没有Loadmodules xxx_dav xxx.so 此处会报错SVNParentPath /opt/svn svn设置AuthType Basic 连接类型设置AuthName "Subversion Authorization" 连接框提示AuthzSVNAccessFile /opt/svn/authz.conf 权限配置文件此文件中有 [group] AuthUserFile /opt/svn/htpasswd 此文件中存的是用 htpasswd 创建的Require valid-user 采用何种认证</Location>重启apache 验证配置/usr/local/apache/bin/apachectl restart 如果没有启动用start打开浏览器访问http://192.168.58.xxx/opt/svn/repository --》弹出登陆框如果不弹出登陆框则配置失败/***********************************/最后:我安装过程中错误千奇百怪的,一点一点上网搜资料,慢慢的就完善了!也预祝你们顺利!。
linux下搭建SVN服务器完全手册RHEL5.4最小化安装(关iptables,关selinux) + ssh + yum一,安装必须的软件包.yum install subversion (SVN服务器)mysql-server (用于codestriker)httpd mod_dav_svn mod_perl (用于支持WEB方式管理SVN服务器)sendmail (用于配置用户提交代码后发邮件提醒)wget gcc-c++ make unzip perl* (必备软件包)ntsysv vim-enhanced (可选)二,基本的SVN服务器配置1,新建一个目录用于存储SVN所有文件# mkdir /home/svn2,新建一个版本仓库# svnadmin create /home/svn/project3,初始化版本仓库中的目录# mkdir project project/server project/clientproject/test (建立临时目录)# svn import project/ file:///home/svn/project -m "初始化SVN目录"# rm -rf project (删除临时建立的目录)4,添加用户要添加SVN用户非常简单,只需在/home/svn/project/conf/passwd文件添加一个形如“username=password"的条目就可以了.为了测试,我添加了如下内容:[users]# harry = harryssecret# sally = sallyssecretpm = pm_pwserver_group = server_pwclient_group = client_pwtest_group = test_pw5,修改用户访问策略/home/svn/project/conf/authz记录用户的访问策略,以下是参考:[groups]project_p = pmproject_s = server_groupproject_c = client_groupproject_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 = noneauth-access = writepassword-db = /home/svn/project/conf/passwd authz-db = /home/svn/project/conf/authz7,启动服务器# svnserve -d -r /home/svn8,测试服务器# svn co svn://192.168.60.10/projectAuthentication realm: <svn://192.168.60.10:3690> 92731041-2dae-4c23-97fd-9e1ed7f0d18dPassword for 'root':Authentication realm: <svn://192.168.60.10:3690> 92731041-2dae-4c23-97fd-9e1ed7f0d18dUsername: server_groupPassword for 'server_group':svn: Authorization failed ( server_group没用根目录的访问权 )# svn co svn://192.168.60.10/projectAuthentication realm: <svn://192.168.60.10:3690> 92731041-2dae-4c23-97fd-9e1ed7f0d18dPassword for 'root':Authentication realm: <svn://192.168.60.10:3690> 92731041-2dae-4c23-97fd-9e1ed7f0d18dUsername: pmPassword for 'pm':A project/testA project/serverA project/clientChecked out revision 1. ( 测试提取成功 )# cd project/server# vim main.c# svn add main.c# svn commit main.c -m "测试一下我的C程序,看什么看,不行啊??"Adding main.cTransmitting file data .Committed revision 2. ( 测试提交成功 )三,配置SVN服务器的HTTP支持1,转换SVN服务器的密码由于SVN服务器的密码是明文的,HTTP服务器不与支持,所以需要转换成HTTP支持的格式。
我写了一个Perl脚本完成这个工作.脚本内容如下:# cd /home/svn/project/conf/# cat PtoWP.pl#!/usr/bin/perl# write by huabo, 2009-11-20use warnings;use strict;#open the svn passwd fileopen (FILE, "passwd") or die ("Cannot open the passwd file!!!\n");#clear the apache passwd fileopen (OUT_FILE, ">webpasswd") or die ("Cannot open the webpasswd file!!!\n");close (OUT_FILE);#beginforeach (<FILE>) {if($_ =~ m/^[^#].*=/) {$_ =~ s/=//;`htpasswd -b webpasswd $_`;}}# ./PtoWP.pl ( 先给该脚本加可执行权限,然后执行以转换密码 )Adding password for user pmAdding password for user server_groupAdding password for user client_groupAdding password for user test_group现在目录下会多一个webpasswd文件。
2,修改httpd.conf,添加关于SVN服务器的内容编辑/etc/httpd/conf/httpd.conf,在最后添加如下信息: <Location /project>DAV svnSVNPath /home/svn/project/AuthType BasicAuthName "svn for project"AuthUserFile /home/svn/project/conf/webpasswdAuthzSVNAccessFile /home/svn/project/conf/authz Satisfy allRequire valid-user</Location>3,启动HTTPD服务器# service httpd restartStoppinghttpd: [FAILED]Startinghttpd: [ OK ]4,用浏览器访问http://192.168.60.10/project/server/测试测试结果如下图所示:( 测试成功 )四,配置邮件提醒支持1,安装Perl模块Module::Build# wget/CPAN/authors/id/D/DA/DAGOLDEN/Module-Build-0.3 6_11.tar.gz# tar xvf Module-Build-0.36_11.tar.gz# cd Module-Build-0.36_11# perl Build.PL# ./Build# ./Build test# ./Build install# cd ..2,安装Perl模块Authen::SASL# wget/CPAN/authors/id/G/GB/GBARR/Authen-SASL-2.15.ta r.gz# tar xvf Authen-SASL-2.15.tar.gz# cd Authen-SASL-2.15# perl Makefile.PL# make test# make install# cd ..3,安装Perl模块Net::SMTP_auth# wget/CPAN/authors/id/A/AP/APLEINER/Net-SMTP_auth-0.08.tar.gz# tar xvf Net-SMTP_auth-0.08.tar.gz# cd Net-SMTP_auth-0.08# perl Makefile.PL# make test# make install# cd ..4,安装Perl模块SVN::Notify# wget/CPAN/authors/id/D/DW/DWHEELER/SVN-Notify-2.80. tar.gz# tar xvf SVN-Notify-2.80.tar.gz# cd SVN-Notify-2.80# perl Build.PL# ./Build# ./Build test# ./Build install# cd ..5,启动邮件服务器# service sendmail restartShutting downsendmail: [FAILED]Startingsendmail: [ OK ]Startingsm-client: [ OK ]6,配置自动发邮件脚本修改post-commit脚本,以支持邮件通知功能.# cd /home/svn/project/hooks/# vim post-commit内容如下:#!/bin/shREPOS="$1"REV="$2"/usr/bin/svnnotify --repos-path "$1" --revision "$2"--to caodaijun@ --from caodaijun@ --handler "HTML::ColorDiff" --with-diff --smtp localhost --smtp-user root--smtp-pass 5201314318 -c "UTF-8" -g zh_CN -o raw --svnlook/usr/bin/svnlook --subject-prefix '[SVN Update]'(to参数代表接收邮件的地址,可以有多个,当你有多个老大的时候,这就很重要了,:)。