欢迎登陆真网站,您的到来是我们的荣幸。 登陆 注册 忘记密码? ☆设为首页 △加入收藏
欢迎加入真幸福QQ群
电脑知识: 基础知识 网络技术 操作系统 办公软件 电脑维修 电脑安全 windows7 windows8 windows10 服务器教程 平板电脑 视频播放教程 网络应用 互联网 工具软件 浏览器教程 QQ技巧 输入法教程 影视制作 YY教程 wps教程 word教程 Excel教程 PowerPoint
云南西双版纳特产小花糯玉米真空包装


清除SQL SERVER错误日志出现操作系统错误的解决方案
风铃无线站点效果监测介绍
如何在Win7系统中修复RAR压缩文件损坏教程
VMware虚拟机的CentOS无法上网的解决方法
风铃如何预览手机页面
win7电脑中的图片后缀名如何修改?
图图桌面怎样调整桌面显示位置
Windows 8如何更新设备的驱动程序
win7电脑中突然出现一个本地磁盘Q怎么办?
win2008 iis7 设置取消 执行“纯脚本”权限
Linux系统中SVN安装、权限管理
【 来源:网络 】【 点击:1 】 【 发布时间:2017_03_03 08:59:59 】

   SVN安装

  SVN服务器有2种运行方式:独立服务器和借助apache运行。

  svnserve和apache相比是轻量级的,也比较简单,svnserve包含在subversion里面,所以只要安装了subversion就相当于安装了一个小型的svn服务器。它使用自己的一套协议通信。例如访问apache时使用 http:// 前缀,而svnserve使用 svn:// 前缀.

  这里介绍的是通过独立服务器方式运行,优点是简单小巧。如果是支持较大规模的开发,还是推荐使用apache服务器方式;这里使用svnserver安装;

  1.首先为SVN单独创建一个用户,这样可以使用操作系统的安全特性;

  2.将svnadmin这个用户加入到sudu组;

  3.安装:

  sudo apt-get install subversion

  4.创建测试目录:

  mkdir /home/svnadmin/test

  5.创建版本库:

  svnadmin create /home/svnadmin/test

  4. 导入项目

  例如现在有个工程,名称为examPro,

  位置/alidata/www/examPro , 将这个工程导入到本地仓库中。

  svn import /alidata/www/examPro file:///home/svnadmin/examPro -m "import examPro"

  在上一个例子里,将会拷贝目录examPro到版本库中;

  这样这个工程就在纳入服务器的本地仓库管理。

  为了使用SVN的同步更新机制,我们需要在svn服务器环境上签出一份最新工程拷贝(为表述方便,这里称为A目录)。

  $ svn checkout file:///home/svnadmin/examPro

  在这个拷贝里,我们一般不做修改,而是用来同步更新;当开发机器上有任何修改,更新到SVN服务器上时,能同步更新到A目录;这样,就能保证A目录下的代码是整个工程的最新代码,而使用A目录搭建的WEB测试环境,就是最新的WEB测试环境;

  5.启动SVN服务

  $ svnserve -d -r /home/svnadmin/examPro

  描述说明:

  -d 表示svnserver以“守护”进程模式运行

  -r 指定文件系统的根位置(版本库的根目录),这样客户端不用输入全路径,就可以访问版本库。

  6.停止svn服务:

  killall svnserve //停止svnserve服务

  SVN权限管理

  1.SVN版本库目录说明

  db:存放具体数据;

  hooks:钩子程序存放地,比如我们要实现同步更新的操作,在这里实现;

  conf:配置文件存放地

  下面具体说说conf目录;

  conf目录下有三个文件:

  svnserve.conf、authz、以及passwd;

  2.SVN服务配置文件:svnserve.conf

  查看该文件,首先是匿名用户的权限配置:

  anon-access = none

  auth-access = write

  表示:对于匿名用户,无访问权限;

  对于授权用户,有写权限;

  接下来的一段用于配置使用哪种授权登录方式;

  可选的有password-db ,就是用户名和密码都是明文存放在同级目录下的passwd文件中;优点是高效配置简单,缺点是安全性弱,明文总不是那么让人感觉可靠;

  另一种是authz-db,这种方式的用户密码使用了sasl加密,安全上有保证;

  选择这种方式的设置,将password-db 注释掉:

  # password-db = passwd

  authz-db = authz

  #指定授权所属的域,C++的同志可将其理解为名字空间;

  realm = examPro

  接下来是[sasl]段,用于标识是否进行SASL加密处理;

  use-sasl = true

  min-encryption = 128

  max-encryption = 256

  变量 min-encryption 和 max-encryption 控制服务器所需要的加密强度。

  3. 详细权限配置文件authz:

  这个就是授权数据库,用于配置指定目录对用户的访问权限;

  首先是指定一个用户组,按组来分配权限总是方便的,即使目前你的团队一个组只有一个人。在新加入成员的时候,你就能体会到按组分配权限的便利性了;

  [groups]

  g_fronter=cuicc,gdii

  g_vip=coo

  g_doc=yhh

  [examPro:/]

  @g_vip=rw

  @g_fronter=r

  @g_doc=r

  [examPro:/protected/modules]

  @g_vip=rw

  @g_fronter=

  *=

  [examPro:/protected]

  @g_doc=

  对于以上代码的配置的详细说明,可以参考本文的参考文章[1]SVN权限配置,里面介绍的比较详细,这里就不多说,有疑问的请留言或mail;

  SVN使用SASL加密

  1.配置svnserve.conf,注释掉password-db = passwd

  并启用sqsl:use-sasl = true

  2.新建一个svn.conf文件,一般放在/usr/lib/sasl2或者/etc/sasl2,内容为:

  pwcheck_method: auxprop

  auxprop_plugin: sasldb

  sasldb_path: /home/svnadmin/config/sasldb

  mech_list: DIGEST-MD5

  其中sasldb_path 指定你打算将sasl加密的数据库放置的位置;

  注释:pwcheck_method指明检查的方法,这里是“auxprop ”,这个pwcheck_method还对应了如启动一个代理作为认证服务等方式,而现在的意思就是使用本文件说的方式去检查。然后我们指明auxprop_plugin为sasldb,也就是使用一个文件存放用户名密码,也就是/home/svn/svnjiami/sasldb,其它的认证信息存放plugin还有sql和ldapdb。而mech_list指明了认证信息传递机制。

  svnserve 已经在运行,你需要重启服务,并确保它读取了更新后的配置参数

  killall svnserve //停止svnserve服务

  svnserve –d –r /home/svn //启动svnserve服务

  3.创建用户和密码

  使用saslpasswd2 程序

  语法:saslpasswd2 –c –f /home/svn/jiami/sasldb –u [svnserve.conf里面配置的realm名字] [username]

  eg:saslpasswd2 -c -f /home/svnadmin/config/sasldb -u examPro colin

  会出现交互界面,提示输入两次密码;

  附:

  saslpasswd2 -d -f home/svnadmin/config/sasldb -u 用户名//删除用户

  sasldblistusers2 -f /home/svnadmin/config/sasldb // 查询用户

  PS:如果访问库的时候出现以下提示 "Could not obtain the list of SASL mechanisms",原因是Linux默认没有安装DIGEST-MD5,此时,可用以下命令安装更新:yum install cyrus-sasl-md5 , cyrus-sasl-md5首页: http://asg.web.cmu.edu/sasl/, 安装包下载地址:ftp://ftp.andrew.cmu.edu/pub/cyrus/

  配置完成;

  SVN上传时同步到服务器其它目录

  svn/examPro/hooks/目录下:

  能看到一堆模版钩子文件,我们需要的是post-commit.tmpl,

  copy一份,命名为post-commit。然后修改;

  1.设置语言环境:

  #这行比较重要,需要根据你的服务器环境选择正确的语言环境,否则,这个update不会工作;

  #export LANG=zh_CN.UTF-8

  export LANG=en_US.UTF-8

  2.设置SVN更新时需要同步更新的目录

  svn update /alidata/www/examplePro --username yoursname --password yourpwd

  以上这行表明,当svn服务器版本有更新时,则同步更新到/alidata/www/examPro目录下的对应文件;yoursname 和yourpwd是你在sasl中设置的用户名和密码;(这里还是涉及到了明文存放,对此,你可以分配一个用户对svn版本库只有全局的读权限)

  3.输出日志,便于跟踪查询

  echo `whoami`,$REPOS,$REV >> /home/svnadmin/examPro/hooks/svn_hook.log

  每当有更新时,更新日志里就会插入一条语句,表明何时有过更新;(这个也可用来配置环境时调试,用来查询同步是否起效)

  我们的配置到这里就全部完成;

  现在,SVN就实现了版本管理的功能,同时,同步更新的目录有利于测试人员集成测试;

  开发人员需要保证的是,任何时候签入到svn库中的版本是可运行的代码。

本网站由川南居提供技术支持,fkzxf版权所有 浙ICP备12031891号
淳安分站 淳安分站