Linux安装SVN---不依赖Apache(实验以CentOS为例)

 (1)第一步:检测当前系统是否安装过svn
     svn --version         //检测svn版本
     如果安装了会显示svn的版本信息,如我的所示
    svn,版本 1.6.11 (r934486)
    编译于 May 14 2012,05:36:26

    版权所有 (C) 2000-2009 CollabNet。
    Subversion 是开放源代码软件,请参阅 http://subversion.tigris.org/ 站点。
    此产品包含由 CollabNet(http://www.Collab.Net/) 开发的软件。

    可使用以下的版本库访问模块: 

    * ra_neon : 通过 WebDAV 协议使用 neon 访问版本库的模块。
    - 处理“http”方案
    - 处理“https”方案
    * ra_svn : 使用 svn 网络协议访问版本库的模块。  - 使用 Cyrus SASL 认证
    - 处理“svn”方案
    * ra_local : 访问本地磁盘的版本库模块。
    - 处理“file”方案
 (2)第二步:如果没安装..就准备安装(在线安装,离线版安装,稍后会贴上)
       yum install subversion
 (3)第三步:svn配置(svn可以建立多个版本库)
    新建文件夹:
    # mkdir -p /opt/svndata/repos
    建立版本库:
    # svnadmin create /opt/svndata/repos
    修改svn版本库配置文件
    # cd /opt/svndata/repos/conf
    # ls -l(会有authz,passwd,svnserve.conf)
     --配置svnserve.conf文件
    #vi svnserve.conf
    [general]
    anon-access = none
    auth-access = write
    password-db =passwd
    authz-db = authz
    realm = repos
    解释下上面配置的意思:
    [general]是必须要写的:
    anon-access = none //定义非授权用户的访问权限,有三种方式: none 、 read 、 write ,设置为 none 限制访问, read 为只读, write 为具有读写权限,默认为 read 。
    auth-access = write //定义授权用户的访问权限,有三种方式: none 、 read 、 write ,设置为 none 限制访问, read 为只读, write 为具有读写权限,默认为 write 。
    password-db =passwd  //定义保存用户名和密码的文件名称,这里为 passwd ,和该文件位于同一目录。就是上面ls出现的passwd
    authz-db = authz   //定义保存授权信息的文件名称,这里为 authz ,和该文件位于同一目录。同上
    realm = repos      //定义客户端连接是的“认证命名空间”, Subversion 会在认证提示里显示,并且作为凭证缓存的关键字。 svn库的目录repos
     --配置passwd文件
    [users]
    # harry = harryssecret  //username=password
    # sally = sallyssecret
    liuyi = liuyi
     --配置authz文件
    [groups]
    admin = liuyi
    [/]
    @admin = rw
    解释authz的配置信息如下:authz是svn权限配置
    [groups]    #设置组
    group1 = user1,user2  #多用户用逗号隔开
    [/]       #根目录权限设置(就是“kuming”这个文件夹)
    user3 = rw   #用户1权限是:可读写
    user4 = r    #用户2权限是:可读,不可写
    user =      #什么都没写代表没有任何权限
    @group1 = rw  #设置组权限
 (4)第四步:添加用户svn并启动svn
    # useradd svn      //添加svn这个用户
    # passwd svn       //设置svn用户密码
    # su - svn -c "svnserve -d --listen-port 9999 -r /opt/svndata"     //启动svn详细参数说明
    其中:
    su - svn表示以用户svn的身份启动svn       //用户svn在
    -d表示以daemon方式(后台运行)运行
    –-listen-port 9999表示使用9999端口,可以换成你需要的端口。但注意,使用1024以下的端口需要root权限
    -r /opt/svndata指定根目录是/opt/svndata
    检查:
    ps -ef|grep svnserve
    如果显示如下,即为启动成功:
    svn       1783     1  0 21:39 ?        00:00:00 svnserve -d --listen-port 9999 -r /opt/svndata
 (5)测试svn
    服务器测试:
    # cd /tmp
    # mkdir test
    # touch test.txt
    # svn import /tmp/test/ file:///opt/svndata/repos -m “this is thie first import”
    # mkdir -p /tmp/test2
    # cd /tmp/test2
    # svn co file:///opt/svndata/repos /tmp/test2/
    或者:
    # svn co svn://{your-server-ip}:9999/repos/
    这时应该可以看到文件test.txt.
    另外的测试方法:
    # telnet {your-server-ip} 9999 检查端口是不是通的
    如果 上面检查不通,有可能是iptables中没有打开,设置iptables就可以:
    # vi /etc/sysconfig/iptables
    添加:
    -A OUTPUT -p tcp -m tcp --dport 9999 -j ACCEPT
    也可以用windows svn客服端来测试
    svn://192.168.19.128:9999/repos   用户liuyi 密码liuyi
    就可以看到里面的test.txt文件,可以checkout等
  至此,Linux安装svn及测试的工作已经全部完成,希望大家多多指点

posted on 2012-06-20 23:21  海洋天空  阅读(317)  评论(0)    收藏  举报

导航