• linux环境架设svn


     前言

    SVN服务器有2种运行方式:独立服务器和借助apache。2种方式各有利弊,独立SVN服务器不结合Apache安装使
    用,连接独立SVN服务器也不用HTTP协议。这是比较快捷的SVN服务器配置方法。本次安装时使用的是独立用品
    方式。

    SVN存储版本数据也有2种方式:BDB和FSFS。因为BDB方式在服务器中断时,有可能锁住数据所以还是FSFS方式
    更安全一点,我安装时也使用的是FSFS方式。
    一 下载工具

    1. subversion-1.6.17.tar.gz

    2. subversion-deps-1.6.17.tar.gz

    这两个包可以直接到CSDN去下载,版本要一样,都是必须下载的,否则单独下载第一个包编译时就会提示缺少
    模块。这两个包下载解压后会解压到同一个目录下,不需要特别指定。


    二 解压安装

    1. 解压两个包:

    在此之前,我已经创建了一个用户svnadmin专门用来安装管理svn的,就解压在/home/svnadmin/目录下

    tar -xzvf subversion-1.6.17.tar.gz

    tar -xzvf subversion-deps-1.6.17.tar.gz

    2. 编译安装

    ./configure --prefix=/home/svnadmin/subversion --without-berkeley-db

    //prefix指定安装的目录,without-berkeley-db表明不使用berkeley数据库

    //在这一步有可能不成功,是因为有一些依赖的软件没装,具体见下面“遇到的问题”

    make

    make install

    //也许要sudo,看情况

    3. 查看是否安装成功

    /home/svnadmin/subversion/bin/svnserve --version

    //如果出现SVN的版本则证明安装成功

    三 添加环境变量

    可以在/etc/profile中添加,这是全局的。其实最好是专门添加一个svnadmin用户,在~/.bashrc中添加即可

    exprot PATH=$PATH:/home/svnadmin/subversion/bin

    四 建立仓库

    1. 创建目录

    mkdir -p /home/svnadmin/svndata/repos1

    加上参数P,是如果没有父目录则自动创建

    注意: /home/svnadmin/svndata在这里将是所有仓库的根目录,repos1是其中的一个仓库。

    2. 创建仓库

    svnadmin create /svndata/repos1

    这里使用SVN将repos1建立为仓库。则在repos1文件夹里会生成一系列对于repos1仓库相应的配置文件

    五 配置仓库

    1. 查看创建仓库后的文件

    进入/svndata/repos1/conf,会发现有几个配置文件,如下图

    2. 修改svnserve.conf

    vi svnserve.conf

    打开这个配置文件,可以看到很多配置项已经注释掉了,只需要按下面这几项修改就可以了

    [general]

    anon-access = none

    auth-access = write

    password-db = passwd

    authz-db=authz

    3. 目录控制文件authz (or叫权限控制文件)

    vi authz

    默认是没有配置的,要参照下面示例来配置

    [groups]

    admin = svnadmin

    [repos1:/]

    @admin = rw

    svnadmin = rw

    上面的配置权限控制文件的配置格式如下:

    [groups]

    <用户组名> = <用户1>,<用户2>, ……

    [<版本库>:/项目/目录]

    @<用户组名> = <权限>

    <用户名> = <权限>

    其中,方框号内部分可以有多种写法:

    /,表示根目录及以下。根目录是svnserve启动时指定的,我们指定为/home/svnadmin/svndata。这样,/就是
    表示对全部版本库设置权限。

    repos1:/,表示对版本库1设置权限

    repos2:/occi,表示对版本库2中的occi项目设置权限

    repos2:/occi/aaa,,表示对版本库2中的occi项目的aaa目录设置权限

    权限主体可以是用户组、用户或*,用户组在前面加@,*表示全部用户。权限可以是w、r、wr和空,空表示没
    有任何权限。

    4. 修改用户密码文件passwd

    vi passwd

    默认也是没有配置任何用户的,可按下面配置示例配置

    [users]

    svnadmin = 123456

    用户密码的配置格式:

    [users]

    <用户1> = <密码1>

    <用户2> = <密码2>

    注意:这里的配置文件,除了注释外每行都必须顶行,否则又会报错了。

    五 启动SVN

    svnserve -d -r /home/svnadmin/svndata

    -d表示在后台运行,-r表示……

    注意:这里是/home/svnadmin/svndata,并非/home/svnadmin/svndata/repos1。这是SVN使所有仓库根目录都
    生效的命令,并非某个仓库。这里必须注意。

    六 开启SVN的端口,默认是3690

    在测试的时候,在本机可以使用svn,但是到了其他主机(在同一个局域网)就不行了,

    错误信息提示:svn: 无法连接主机“192.168.6.74”: 没有到主机的路由

    这就是因为防火墙的问题,要保证服务器和客户端都没有屏蔽这个端口

    七 基本测试

    1. checkout

    svn co svn://192.168.6.74/repos1

    checkout的时候,会要求输入用户名密码,只有配置了的用户才能验证通过

    2. 更新

    svn up

    3. 提交

    svn ci -m 'add file'

    4. 查看信息

    svn info

    5. 增/删

    svn add file / svn del fiel

    八 遇到的问题

    刚开始我在虚拟机上的ubuntu上面安装时,出现了如下的错误,附上解决方法。后来我在red hat服务器上面
    安装的时候就不会出现如下错误,可以是服务器版的linux已经安装了这些软件。环境不同,可能还会出现其
    他的问题,没有遇到而已。

    1. OpenSSL

    configure配置SVN时可能提示如下错误信息:

    configure: error: We require OpenSSL; try --with-openssl

    解决方法:

    错误提示需要安装openssl,所以我就安装了一个openssl,安装方法如下:

    下载openssl:http://www.openssl.org/source/openssl-1.0.0a.tar.gz

    cd /usr/local

    tar -zxvf openssl-1.0.0a.tar.gz

    cd openssl-1.0.0a

    ./config

    ./config -t

    make depend

    make

    make test

    make instal

    安装之后会在/usr/local下生成一个ssl目录,配置SVN时加上openssl路径

    ./configure --prefix=/home/svnadmin/subversion --without-berkeley-db --with-
    openssl=/usr/local/ssl

    2. zlib

    configure配置SVN时可能提示如下错误信息:

    configure: error: subversion requires zlib

    错误提示需要安装zlib

    下载zlb:http://zlib.net/

    cd /usr/local

    tar -xvzf zlib-1.2.5.tar.gz

    cd zlib-1.2.5

    ./configure

    make

    make install

    3. expat

    configure配置SVN时可能提示如下错误信息:

    configure: error: no XML parser was found: expat or libxml 2.x required

    错误提示需要安装expat

    下载expat :http://sourceforge.net/project/showfiles.php?group_id=10127

    cd /usr/local

    tar -xvzf expat2.tar.gz

    cd expat2

    ./configure

    make

    make install

    其它电话连接svn一定要记住关闭防火墙

    防火墙相关
    chkconfig iptables on
    如闭防火墙则输入:
    chkconfig iptables off
    上述两条命令均要重启系统才能生效。
    如果不想通过重启系统而即时生效的话,可以用“service”命令。缺点是重启系统后设置会丢失。
    开启了防火墙:
    service iptables start
    关闭防火墙:
    service iptables stop
    要在防火墙中设置某些端口的开关,可修改编辑/etc/sysconfig/iptables文件,比如开启SSH 端口22,可以
    加上如下内容:
    -A RH-Firewall-1-INPUT -m state ――state NEW -m tcp -p tcp ――dport 22 -j ACCEPT
    总之,“ptables”功能很强大,在这里不能一一说清楚,具体还请参考“ptables”的资料。

  • 相关阅读:
    BEC listen and translation exercise 44
    中译英12
    BEC listen and translation exercise 43
    中译英11
    BEC listen and translation exercise 42
    中译英10
    BEC listen and translation exercise 41
    中译英9
    BEC listen and translation exercise 40
    中译英8
  • 原文地址:https://www.cnblogs.com/xiaozhou8/p/3321402.html
Copyright © 2020-2023  润新知