运维社区-SVN版本控制系统企业应用.pdf
《运维社区-SVN版本控制系统企业应用.pdf》由会员分享,可在线阅读,更多相关《运维社区-SVN版本控制系统企业应用.pdf(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、赵班长原创作品赵班长原创作品赵班长原创作品赵班长原创作品转载请注明:来自 UNIXHOT 开源社区http:/1SVNSVNSVNSVN 版本控制版本控制版本控制版本控制系统系统系统系统企业应用企业应用企业应用企业应用UNIXHOTUNIXHOTUNIXHOTUNIXHOT 开源社区开源社区开源社区开源社区http:/赵班长原创作品赵班长原创作品赵班长原创作品赵班长原创作品转载请注明:来自 UNIXHOT 开源社区http:/2SVNSVNSVNSVN 版本控制版本控制版本控制版本控制系统系统系统系统企业应用企业应用企业应用企业应用时间:2010 年 5 月 1 日姓名:赵班长版本:1.0实验
2、目的:通过实验掌握 SVN 版本控制系统在企业中的应用部署实验环境:Red Hat Enterprise Linux Server release 5.3实验步骤:一、Subversion 概述二、在 Linux 下部署 SVN 独立服务器三、在 Linux 下部署 SVN+Apache 服务器四、使用 MySQL 进行访问控制五、部署 USVN 基于 WEB 管理 Subversion六、Windows 下 svn 客户端 TortoiseSVN 的安装和使用七、SVN 的日常管理实验简介:UNIXHOT 致力于为想成为系统运维工程师、系统集成工程师、系统架构师、MySQL DBA 和 Or
3、acleDBA 的互联网朋友们创造一个开源的、共享的、完整的、创新的、一站式的学习和交流平台。实验内容:1 1 1 1 SubversionSubversionSubversionSubversion 概述概述概述概述Subversion,简称 SVN,是一个开放源代码的版本控制系统,相对于的 RCS、CVS,采用了分赵班长原创作品赵班长原创作品赵班长原创作品赵班长原创作品转载请注明:来自 UNIXHOT 开源社区http:/3支管理系统,它的设计目标就是取代 CVS。互联网上越来越多的控制服务从 CVS 转移到 Subversion。Subversion 的官方网站:http:/subver
4、sion.tigris.org/http:/subversion.apache.org/Subversion 官方文档:http:/svnbook.red- 1.5-中文版本 PDF 下载:http:/i18n- 服务器可以用两种方式架设:一种是基于 svnserve,svnserve 作为服务端;一种是基于 Apache,用 apache 作为服务端。2 2 2 2 在在 LinuxLinuxLinuxLinux 下部署下部署 SVNSVNSVNSVN 独立服务器独立服务器2.12.1 安装软件包安装软件包在 SVN 独立服务器的部署中,我建议采用 rpm 即可,快捷方便易管理,RedHat
5、 和 CentOS 都已经默认安装了该软件包,如果没有安装请安装:rootUnixHot#mount/dev/cdrom/mntrootUnixHot#rpm-ivh/mnt/Server/subversion-1.4.2-4.el5.i386.rpmrootUnixHot#svnserve-versionsvnserve,version 1.4.2(r22196)compiled Sep1 2008,06:37:46Copyright(C)2000-2006 CollabNet.Subversion is open source software,see http:/subversion.t
6、igris.org/This product includes software developed by CollabNet(http:/www.Collab.Net/).The following repository back-end(FS)modules are available:*fs_base:Module for working with a Berkeley DB repository.*fs_fs:Module for working with a plain file(FSFS)repository.如果执行成功,说明你已经安装成功了 SVN,并且告诉你默认支持两种数据库
7、。赵班长原创作品赵班长原创作品赵班长原创作品赵班长原创作品转载请注明:来自 UNIXHOT 开源社区http:/4注:注:对于 SVN 所支持的两种数据库的比较请参阅:http:/ 配置配置 SVNSVN2.2.12.2.12.2.12.2.1 建立建立 SVNSVNSVNSVN 版本库版本库rootUnixHot#mkdir/opt/svndata/rootUnixHot#svnadmin create-fs-type fsfs/opt/svndata/unixhotrootUnixHot#ls/opt/svndata/unixhot/confdavdbformathookslocksREA
8、DME.txtconf 目录下存放了版本库的配置文件,包括用户访问控制和权限控制等内容,文件本身的注释说明十分详细,你可以根据注释自行配置。dav 目录是提供给 Apache 相关模块的目录,目前为空。db 目录下存放着 Subversion 所要管理的所有受版本控制的数据,不同的存储方式(BerkeleyDB 或者 FSFS)下有着不同的目录结构,不过我们一般不用直接修改和查看这个目录下的内容,Subversion 的命令可以安全的操作这个目录。hooks 目录存放着钩子脚本及其模版(一种版本库事件触发程序)。locks 目录存放着 Subversion 版本库锁定数据,format 文件记
9、录了版本库的布局版本号。2.2.22.2.22.2.22.2.2 修改修改 SVNSVNSVNSVN 版本库配置文件版本库配置文件rootUnixHot#vim/opt/svndata/unixhot/conf/svnserve.confgeneral#必须的选项anon-access=none#匿名用户的权限auth-access=write#验证用户的权限password-db=passwd#密码文件的位置(可指定)authz-db=authz#用户验证文件的位置(可指定)2.2.32.2.32.2.32.2.3 配置用户的账号和密码配置用户的账号和密码赵班长原创作品赵班长原创作品赵班长原
10、创作品赵班长原创作品转载请注明:来自 UNIXHOT 开源社区http:/5rootUnixHot#vi/opt/svndata/unixhot/conf/passwdusers#必须的选项unixhot=unixhot#以行为单位,用户名对应密码zhaobanzhang=zhaobanzhang注意注意:多个版本库可以共用 1 个用户配置文件,对用户配置文件的修改立即生效,不必重启 SVN4.4.4.4.配置可访问的用户和用户组的权限配置可访问的用户和用户组的权限rootUnixHot#vim/opt/svndata/unixhot/conf/authz.groupsadmin=unixho
11、tunixhotuser=user1/admin=rwunixhotuser=r1.1.1.1.用户组的写法为:用户组的写法为:=,1 个用户组可以包含 1 个或多个用户,用户之间以逗号分隔。2222权限的设定有两种,一种是为组设定权限,一种是为用户设定权限权限的设定有两种,一种是为组设定权限,一种是为用户设定权限为组设定权限:=为用户设定权限:=3333多个版本库可以用自己独立的权限配置文件,也可以共用多个版本库可以用自己独立的权限配置文件,也可以共用 1 1 1 1 个权限配置文件。个权限配置文件。版本库目录格式:赵班长原创作品赵班长原创作品赵班长原创作品赵班长原创作品转载请注明:来自 U
12、NIXHOT 开源社区http:/6:/项目/目录=其中,方框号内部分可以有多种写法:/,表示根目录及以下。根目录是 svnserve 启动时指定的,unixhot1:/,表示对版本库 1 设置权限unixhot2:/oa,表示对版本库 2 中的 oa 项目设置权限unixhot3:/oa/web,表示对版本库 3 中的 oa 项目的 web 目录设置权限注意:注意:权限主体可以是用户组、用户或*用户组在前面加,*表示全部用户。权限可以是 w、r、wr 和空,空表示没有任何权限。示例如下:/unixhot=rwunixhot2:/oazhao=rwunixhot2:/oa/webshudong
13、=rw2.32.3 启动启动 SVNSVN启动 SVN 有两种方式:一种是直接以后台模式启动,因为 Subversion 软件包包含了 svnserve 程序,这个程序可以做为一个守护进程运行并且监听来自 Subversion 客户端的连接。一种是用 xinetd 管理。xinetd 守护程序可以用来监听 Subversion 的默认 3690 端口,然后发起执行 svnserver 守护进程。本人推荐用 xinetd 管理,在这里详细列出两种启动方式的配置和命令。赵班长原创作品赵班长原创作品赵班长原创作品赵班长原创作品转载请注明:来自 UNIXHOT 开源社区http:/71.1.1.1.直
14、接以后台模式启动直接以后台模式启动rootUnixHot#useradd svnrootUnixHot#chown-R svn:svn/opt/svndatarootUnixHot#su-svn-c svnserve-d-listen-port 5241-r/opt/svndatarootUnixHot#ps-ef|grep svnservesvn289010 22:35?00:00:00 svnserve-d-listen-port 5241-r/opt/svndataroot289527900 22:36 pts/000:00:00 grep svnserve已经运行了。rootUnixH
15、ot#netstat-na|grep 5241tcp00:5241:*LISTEN2.2.2.2.使用使用 xinetdxinetdxinetdxinetd 守护进程管理守护进程管理 SVNSVNSVNSVN 服务服务注意:如果你需要使用 xinetd 来管理 svn,请先 kill 掉刚才启动的进程。rootUnixHot#vim/etc/xinetd.d/svnservice svndisable=nosocket_type=streamwait=noport=3690protocol=tcpserver=/usr/bin/svnserveserver_args=-d-i-r/opt/sv
16、ndatauser=svnumask=002赵班长原创作品赵班长原创作品赵班长原创作品赵班长原创作品转载请注明:来自 UNIXHOT 开源社区http:/8rootUnixHot#/etc/init.d/xinetd restartrootUnixHot#chkconfig-list|grep svnsvn:on至此,SVN 独立服务器的配置已经安装完成,如果开发人员使用 TortoiseSVN 客户端连接,你可以直接查看第五章的内容了。3 3 3 3 在在 LinuxLinuxLinuxLinux 下部署下部署 SVN+ApacheSVN+ApacheSVN+ApacheSVN+Apache
17、 服务器服务器3.13.1 安装相应的软件包安装相应的软件包rootUnixHot#mount/dev/cdrom/mntrootUnixHot#rpm-ivh/mnt/Server/subversion-1.4.2-4.el5.i386.rpmrootUnixHot#rpm-ivh/mnt/Server/httpd-2.2.3-22.el5.i386.rpmrootUnixHot#rpm-ivh/mnt/Server/mod_dav_svn-1.4.2-4.el5.i386.rpm通过以下命令可以看到 mod_dav_svn 这个包安装的文件有哪些,主要是创建了 apache 所需要加载的模
18、块和一个 subversion.conf 的配置文件,我们只需要修改该配置文件即可完成 SVN+Apache 的配置。rootUnixHot#rpm-ql mod_dav_svn/etc/httpd/conf.d/subversion.conf/usr/lib/httpd/modules/mod_authz_svn.so/usr/lib/httpd/modules/mod_dav_svn.so3.23.2 创建版本库创建版本库rootUnixHot#mkdir/var/www/svnrootUnixHot#cd/var/www/svnrootUnixHot svn#svnadmin creat
19、e unixhotrootUnixHot svn#chown-R apache:apache unixhot赵班长原创作品赵班长原创作品赵班长原创作品赵班长原创作品转载请注明:来自 UNIXHOT 开源社区http:/93.33.3 修改配置文件修改配置文件rootUnixHot#vi/etc/httpd/conf.d/subversion.confLoadModule dav_svn_modulemodules/mod_dav_svn.soLoadModule authz_svn_modulemodules/mod_authz_svn.soDAVsvnSVNParentPath/var/ww
20、w/svn#Limit write permission to list of valid users.#Require SSL connection for password protection.#SSLRequireSSLAuthType BasicAuthName Authorization unixhotAuthUserFile/etc/httpd/conf.d/svnpasswdfileRequire valid-user#3.43.4 添加添加 SVNSVN 验证用户验证用户添加两个用户的例子:rootUnixHot#htpasswd-c/etc/httpd/conf.d/svn
21、passwdfile unixhot注意:第一次使用要加-c 参数创建密码文件,以后使用,不要加-c,不然会导致所有用户丢失。rootUnixHot#htpasswd/etc/httpd/conf.d/svnpasswdfile bosshot3.53.5 启动启动 ApacheApache 并验证并验证赵班长原创作品赵班长原创作品赵班长原创作品赵班长原创作品转载请注明:来自 UNIXHOT 开源社区http:/10rootUnixHot#/etc/init.d/httpd start输入你的 ip/svn/版本库名称:http:/192.168.140.130/svn/unixhot/如果你
22、对这种 Apache 管理账号密码的方式感觉不符合工作需要,你可以使用 MySQl 来管理用户的账号和密码,下面一个章节会具体演示,用 MySQL 管理用户账号和密码的实例。4 4 4 4 使用使用 MySQLMySQLMySQLMySQL 进行访问控制进行访问控制4.14.1 安装安装 MySQLMySQL 和和 mod_auth_mysqlmod_auth_mysqlrootUnixHot#rpm-ivh/mnt/Server/perl-DBI-1.52-2.el5.i386.rpmrootUnixHot#rpm-ivh/mnt/Server/mysql-5.0.45-7.el5.i386
23、.rpmrootUnixHot#rpm-ivh/mnt/Server/perl-DBD-MySQL-3.0007-2.el5.i386.rpmrootUnixHot#rpm-ivh/mnt/Server/mysql-server-5.0.45-7.el5.i386.rpmrootUnixHot#rpm-ivh/mnt/Server/mysql-devel-5.0.45-7.el5.i386.rpmrootUnixHot#rpm-ivh/mnt/Server/mod_auth_mysql-3.0.0-3.1.i386.rpmrootUnixHot#rpm-ql mod_auth_mysql/et
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 社区 SVN 版本 控制系统 企业 应用
限制150内