• Linux系统下SVN的安装


     

    1. SVN简介

    Subversion(SVN) 是一个开源的版本控制系統, 也就是说 Subversion 管理着随时间改变的数据。 这些数据放置在一个中央资料档案库 (repository) 中。 这个档案库很像一个普通的文件服务器, 不过它会记住每一次文件的变动。 这样你就可以把档案恢复到旧的版本, 或是浏览文件的变动历史。

    1. SVN中的一些概念 :

    (1)       repository(源代码库)

    源代码统一存放的地方

    (2)       Checkout (提取)

    当你手上没有源代码的时候,你需要从repository checkout一份

    (3)       Commit (提交)

    当你已经修改了代码,你就需要Commit到repository

    (4)       Update (更新)

    当你已经Checkout了一份源代码, Update一下你就可以和Repository上的源代码同步,你手上的代码就会有最新的变更 

    1. 客户端软件

    (1)       Windows下常用的客户端软件常用TortoiseSVN。它是一个免费的开源的客户端。 下载地址:http://tortoisesvn.net/downloads.html

    (2)       像Myeclipse,也有一些SVN的插件。

    1. 服务端软件安装

    subversion服务器是不需要apache的,但是可以使用apache,视具体情况来选择。
    1、如果只要通过file://或svn://来访问,则不需要apache,只安装svn即可,使用svnserve来作为服务。

    2、如果你要建立一个可以通过http://或https://来访问的版本库服务器,则你需要使用apache。

    (1)通过yum的方式安装不支持apache的SVN服务器

    安装SVN软件

    [root@test ~]# yum -y install subversion

    验证安装的版本:

    [root@test ~]# svnserve --version

    svnserve, version 1.6.11 (r934486)

    compiled Mar  6 2014, 10:49:10

    创建SVN版本库目录

    [root@test /]# mkdir -p /var/svn/svnrepos

    创建版本库

    [root@test /]# svnadmin create /var/svn/svnrepos

    执行上面的命令以后,会在/var/svn/svnrepos目录下生成如下文件:

    [root@test /]# cd /var/svn/svnrepos/

    [root@test svnrepos]# ls -l

    total 24

    drwxr-xr-x. 2 root root 4096 Jul 25 16:39 conf

    drwxr-sr-x. 6 root root 4096 Jul 25 16:52 db

    -r--r--r--. 1 root root    2 Jul 25 16:24 format

    drwxr-xr-x. 2 root root 4096 Jul 25 16:24 hooks

    drwxr-xr-x. 2 root root 4096 Jul 25 16:24 locks

    -rw-r--r--. 1 root root  229 Jul 25 16:24 README.txt

    [root@test conf]# pwd

    /var/svn/svnrepos/conf

    [root@test conf]# ls

    authz  passwd  svnserve.conf

    其中conf文件夹下面有3个文件,作用分别是

    Svnserve.conf        svn服务配置文件

    Passwd                  用户名口令文件

    Authz                    权限配置文件

    svnserve.conf 文件, 该文件配置项分为以下5项:

    anon-access: 控制非鉴权用户访问版本库的权限。

    auth-access:  控制鉴权用户访问版本库的权限。

    password-db: 指定用户名口令文件名。

    authz-db:指定权限配置文件名,通过该文件可以实现以路径为基础的访问控制。

    realm:指定版本库的认证域,即在登录时提示的认证域名称。若两个版本库的认证域相同,建议使用相同的用户名口令数据文件

    vi svnserve.conf

    打开下面的几个注释:

    anon-access = read #匿名用户可读

    auth-access = write #授权用户可写

    password-db = passwd #使用哪个文件作为账号文件

    authz-db = authz #使用哪个文件作为权限文件

    realm = /var/svn/svnrepos # 认证空间名,版本库所在目录

    passwd文件用于设置账号和密码

    在[users]块中添加用户和密码,格式:帐号=密码,如czb=czb

    vi passwd

    [users]

    # harry = harryssecret

    # sally = sallyssecret

    czb=czb

    authz文件用于设置权限

    vi authz

    [/]

    czb=rw

    意思是czb用户对根目录/有读写的权限.

    启动svn版本库

    svnserve –d –r /var/svn/svnrepos

    (2)通过源码的方式安装支持apache的SVN服务器

     本测试服务器系统为:centos 6.5 x86_64 ip:192.168.137.138

     软件包如下:

    apr-1.5.1.tar.gz

    apr-util-1.5.3.tar.gz

    httpd-2.2.27.tar.gz

    subversion-1.7.17.tar.gz

    1. 安装相关的安装包

    [root@cc ~]# yum -y install gcc openssl openssl-devel zlib zlib-devel

    2. 安装apr-1.5.1

    [root@cc ~]# tar zxvf apr-1.5.1.tar.gz

    [root@cc ~]# cd apr-1.5.1

    [root@cc apr-1.5.1]# ./configure

    [root@cc apr-1.5.1]# make && make install

    [root@cc apr-1.5.1]# cd ..

    3. 安装apr-util-1.5.3

    [root@cc ~]# tar zxvf apr-util-1.5.3.tar.gz

    [root@cc ~]# cd apr-util-1.5.3

    [root@cc apr-util-1.5.3]# ./configure --with-apr=/usr/local/apr/

    [root@cc apr-util-1.5.3]# make && make install

    [root@cc apr-util-1.5.3]# cd ..

    4. 安装httpd-2.2.27

    [root@cc ~]# tar zxvf httpd-2.2.27.tar.gz

    [root@cc ~]# cd httpd-2.2.27

    [root@cc httpd-2.2.27]# ./configure

    --prefix=/usr/local/apache

    --with-apr=/usr/local/apr/bin/apr-1-config

    --with-apr-util=/usr/local/apr/bin/apu-1-config

    --enable-modules=so

    --enable-dav

    --enable-maintainer-mode

    --enable-rewrite

    [root@cc httpd-2.2.27]# make && make install

    5. 安装subversion-1.7.17

    [root@cc ~]# tar zxvf subversion-1.7.17.tar.gz

    [root@cc ~]# cd subversion-1.7.17

    [root@cc subversion-1.7.17]# ./configure

    --prefix=/usr/local/svn

    --with-apxs=/usr/local/apache/bin/apxs

    --with-apr=/usr/local/apr/bin/apr-1-config

    --with-apr-util=/usr/local/apr/bin/apu-1-config

    --with-ssl

    --with-zlib

    --enable-maintainer-mode

    [root@cc subversion-1.7.17]# make && make install

    确认是否安装成功

    [root@cc subversion-1.7.17]# /usr/local/svn/bin/svnserve --version

    svnserve, version 1.7.17 (r1591372)

    compiled Jul 25 2014, 22:49:59

    查看模块是否安装成功

    [root@cc modules]# ls /usr/local/apache/modules/

    httpd.exp  mod_authz_svn.so  mod_dav_svn.so  mod_dontdothat.so

    6. 建立版本库

    [root@cc ~]# mkdir -p /svn/project/www

    [root@cc ~]# /usr/local/svn/bin/svnadmin create /svn/project/www

    查看是否建立成功

    [root@cc ~]# ls /svn/project/www/

    conf  db  format  hooks  locks  README.txt

    7. 修改/svn/project

    [root@cc ~]#chown -R apache:apache /svn/project

    8. 配置apache支持svn

    [root@cc ~]# vi /usr/local/apache/conf/httpd.conf

    最后添加如下代码:

    <Location /svn>

    DAV svn

    SVNParentPath /svn/project

    AuthType Basic

    AuthName "Hello welcome to here"

    AuthUserFile /svn/passwd

    AuthzSVNAccessFile /svn/auth.conf

    Require valid-user

    </Location>

    LoadModule dav_svn_module modules/mod_dav_svn.so

    LoadModule authz_svn_module modules/mod_authz_svn.so

    User daemon

    Group daemon

    修改为

    User apache

    Group apache

    添加

    #ServerName www.example.com:80

    ServerName 192.168.137.138:80  #此ip为服务器IP地址

    启动apache

    [root@cc ~]# /usr/local/apache/bin/apachectl -k  start

    打开浏览器访问http://192.168.137.138/svn/www 会提示输入用户名密码

    9. 配置svn权限配置(authz.conf的配置)

    1)     添加用户:

    [root@cc ~]# /usr/local/apache/bin/htpasswd -c /svn/passwd czb

    New password:

    Re-type new password:

    Adding password for user czb

    此次建立了一个账号为czb,密码也为czb的账号

    第二次添加用户可以不加参数-c

    [root@cc ~]# /usr/local/apache/bin/htpasswd  /svn/passwd test

    New password:

    Re-type new password:

    Adding password for user test

    建立了一个账号test,密码也为test的账号

    2)        权限分配:

    [root@cc ~]# vi /svn/auth.conf

    [groups]   /*这个表示群组设置

    Admin=czb,test   /*这个表示admin群组里的成员 czb,test

    Develop=u1,u2   /*这个表示Develop群组里的成员 u1,u2

    [www:/]         /*这表示,仓库www的根目录下的访问权限

    czb = rw         /*www仓库czb用户具有读和写权限

    test = r          /* www仓库test用户具只有读权限

    @develop=rw    /*这表示 群 develop的成员都具有读写权限

    [/] /*这个表示在所有仓库的根目录下

     * = r /*这个表示对所有的用户都具有读权限

    注意:在编辑authz.conf文件时,所有行都必须要顶头写,不能有缩行出现,否则会报错:"Access denied: ''czb'' ",里面的内容可以根据自己的需要自行添加

    10. 重启apache服务和启动svn服务

    重启apache服务

    [root@cc ~]# /usr/local/apache/bin/apachectl -k restart

    启动svn服务

    [root@cc ~]# /usr/local/svn/bin/svnserve -d -r /svn/project/www

           

    Love馨蕊
  • 相关阅读:
    负数之美
    css重设
    编码问题
    wed的各种前端打印方法(3)CSS
    表单
    学习前端心得
    去除input,a,按键链接时出现的虚线方法
    加载事件js代码
    深入C#数据类型
    查找
  • 原文地址:https://www.cnblogs.com/yuan211/p/8334113.html
Copyright © 2020-2023  润新知