【liunx 】大话liunx菜鸟晋级之路-安装配置svn

来源:互联网 发布:鬼吹灯与盗墓笔记 知乎 编辑:程序博客网 时间:2024/06/11 05:01
在我的前一篇博客中,我已经写了关于svn和git在如何选择,因为综合公司各种原因选择了使用svn作为项目版本管理工具,接下类就交大家如何在liunx上安装svn ,很简单,只要你照着步骤安装,肯定是能够成功的。
(1)检查svn是否已安装
命令:rpm -qa subversion

从结果可以看出,安装的是svn 1.6.11 版本的。
(2)如果没有安装,则用命令安装:
安装命令:yum install subversion
(3) 查看svn安装目录
查看命令:rpm -ql subversion
可以看到 svn在bin目录下生成了几个二进制文件。
再输入/usr/bin/svnversion --version 就可以查看svn的版本,这样就说明svn安装成功,如下图:

(4)创建svn版本库目录 
 mkdir -p /var/svn/svnrepos
(5)创建版本库
svnadmin create /var/svn/svnrepos
执行了这个命令之后会在/var/svn/svnrepos目录下生成如下这些文件


(6)进入conf目录(该svn版本库配置文件)

authz用来配置用户访问权限的,
passwd用来配置用户及密码,
svnserve.conf是对整个svnserve的进程进行配置的
(7) 设置账户密码
vi passwd

在[users]块中添加用户名和密码,在[users]块#harry=harryssecret 是例子,正确格式为:账号 = 密码;vim 查看文本是不可以编辑的,按“i” 即可编辑。 编辑完成后,先按“esc”,然后输入:wq!即可保存退出了。
(8)设置权限
主要是分为两类配置:[groups]类配置、以[repo:/]开头的配置。
a.[groups]的配置是群组。格式为“group_name = user1,user2,user3”,如果有多个用户,可以直接通过","的方式拼接就可以了,例如:
    [groups] 
    # 经理 
    g_manager = michael  
    # 北京办人员 
    g_beijing = scofield  
    # 总部一般员工 
    g_headquarters = rory, linda
  
b.以[repo:/]开头的配置,上边的[gourps]配置是用来划分用户分组的,那么以[repo:/]开头的配置就是用来具体的划分用户读写权限的了,其中repo是你的库的名字,即上边我们通过“svnadmin create /home/user/svn/test”命令所创建的库“test”,下边我们直接用例子来说明它的使用方法:
对项目根目录做限制,该目录只允许经理才能修改,其他人都只能拥有读的权限:  
    [test:/] 
  @g_manager = rw
  * = r  
“[test:/]” 表示这个目录结构的相对根节点,或者说是 test 项目的根目录。这里的 “@” 表示接下来的是一个组名,不是用户名。因为目前 g_manager 组里面只有一个 michael,你当然也可以将 “@g_manager = rw” 这一行替换成 “michael = rw” ,表达的意义完全一样。  
“*” 表示“除了上面提到的那些人之外的其余所有人”,也就是“除了部门经理外的其他所有人” 
“* = r” 则表示“那些人只能读,不能写”。对于根目录下边的子目录,其权限配置方式是相同的,是需要把地址指明就可以了,即[test:/folder1/folder2].如果让用户可以对全部库有权限,直接写[/]即可。
设置权限命令:vi authz

意思:给tanghuan、huanglintao 访问所有库的权限。其中tanghuan 用户拥有读写(read/write)权限,huanglintao用户只有读(read)权限。
ps:配置中我们可能会遇到“* =”这样的情况,他的目的是用来隔断权限的继承性。如果在某一级目录的权限配置里加上这一句,则表明除了该配置中的用户之外的其他用户完全没有这一级目录的任何权利,既不可读,更不可写。
(9)修改svnserve.conf文件
命令:vi svnserve.conf
添加一下内容:
[general]
#匿名访问的权限,可以是read,write,none,默认为read
anon-access=none
#使授权用户有写权限
auth-access=write
#密码数据库的路径
password-db=passwd
#访问控制文件
authz-db=authz
#认证空间名,版本库所在目录
realm=/var/svn/svnrepos 
ps:以上内容可以直接打开注释,也可以自己手动写,我建议直接打开标签,这样不容易出错。同时需要注意各标签不能错,也不能有重复,不然无法连接。
(10)启动svn版本库
命令:svnserve -d -r /var/svn/svnrepos
(11)查看svn启动情况
命令:ps -ef |grep svn

从截图可以看出已经启动了。
(12)检测SVN端口
命令:netstat -ln |grep3690

ps:svn默认端口是3690
从图中可以看出端口是对外开发了的,接下来就是使用客户端进行访问了。
(13) 客户端连接
客户端访问SVN仓库有5种访问模式,分别是:
访问模式: 
(1)file:// 直接访问本地硬盘上文件仓库 
这是所有访问方式中最简单的。它不需要事先运行任何 SVN 服务。这种访问方式用于访问本地的 SVN 文件仓库。语法是: 
$ svn co file:///home/svn/myproject 或者 $ svn co file://localhost/home/svn/myproject 注意:如果您并不确定主机的名称,您必须使用三个斜杠(///),而如果您指定了主机的名称,则您必须使用两个斜杠(//). 对文件仓库的访问权限基于文件系统的权限。

(2)http:// 通过 WebDAV 协议访问支持 Subversion 的 Apache 2 Web 服务器 
要通过 WebDAV 协议访问 SVN 文件仓库,您必须配置您的 Apache 2 Web 服务器。您必须加入下面的代码片段到您的/etc/apach2/apache2.conf 中: 
DAV svn 
SVNPath /home/svn/myproject 
AuthType Basic 
AuthName "myproject subversion repository" 
AuthUserFile /etc/subversion/passwd 
Require valid-user
添加完以上的内容,需要重启svn服务器。请输入下面的命令: 
sudo /etc/init.d/apache2 restart 接下来,您需要创建 /etc/subversion/passwd 文件,该文件包含了用户授权的详细信息。要添加用户,您可以执行下面的命令: sudo htpasswd2 /etc/subversion/passwd user_name 
它会提示您输入密码,当您输入了密码,该用户就建立了。您可以通过下面的命令来访问文件仓库: 
$ svn co http://hostname/svn/myproject myproject --username user_name它会提示您输入密码。您必须输入您使用 htpasswd2 设置的密码。当通过验证,项目的文件就被签出了。

(3)https:// 类似 http://,支持 SSL 加密
Subversion安装后通过具有 SSL 加密的 WebDAV 协议访问 SVN 文件仓库(https://)非常类似上节所述的内容,除了您必须为您的 Apache 2 Web 服务器设置数字证书之外。
 
(4)svn:// 通过自带协议访问 svnserve 服务器 
当您创建了 SVN 文件仓库,您可以修改 /home/svn/myproject/conf/svnserve.conf 来配置其访问控制。在局域网内会采用这种方式来访问。

(5)svn+ssh:// 类似 svn://,支持通过 SSH 通道
Subversion安装配置和服务器进程于上节所述相同。我们假设您已经运行了“svnserve”命令。我们还假设您运行了 ssh 服务并允许接入。要验证这一点,请尝试使用 ssh 登录计算机。如果您可以登录,那么大功告成,如果不能,请在执行下面的步骤前解决它。 vn+ssh:// 协议使用 SSL 加密来访问 SVN 文件仓库。如您所知,数据传输是加密的。要访问这样的文件仓库,请输入:
$ svn co svn+ssh://hostname/home/svn/myproject myproject --username user_name 
PS:在这种方式下,您必须使用完整的路径(/home/svn/myproject)来访问 SVN 文件仓库 

使用svn客户端能正常访问到你的svn,到这就已经安装成功了,你会了吗?
原创粉丝点击