SUSE环境下配置安装SVN版本控制器

    xiaoxiao2021-03-27  29

    前言

    本人操作均在SUSE环境下进行,此次SVN安装配置均在生产环境中进行,特记录在此以便以后自己查询翻阅

    一、

    系统环境:SUSE11 sp3 

    软件: 

    subversion-1.6.17.tar.gz  

    subversion-deps-1.6.17.tar.gz

    二、

     

    解压两个包:

     

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

     

     

        tar -xzvf  subversion-1.6.17.tar.gz  

          

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

     

    2. 编译安装

    mv subversion-1.6.17 subversion

    cd /home/svntest/subversion

     

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

        EG

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

        (后缀为本次安装所用的依赖参数,视情况而定)

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

          

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

          

        make  

          

        make install  

     

    3.添加环境变量

     

     

     

        可以在/etc/profile中添加  

          

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

        source /etc/profile

        

    4.查看是否安装成功  

          

        svnserve --version  

          

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

     

    建立仓库

     

    1. 创建目录

     

     

        mkdir -p /home/svnadmin/subversion/svndata/repos1

          

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

          

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

     

    2. 创建仓库

     

     

     

        svnadmin create  /home/svnadmin/subversion/svndata/repos1

          

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

     

    配置仓库

     

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

     

     

     

        进入/home/svnadmin/subversion/svndata/repos1/conf,会发现有3个配置文件  passwd  authz  svnserve.conf

     

    2. 修改svnserve.conf

     

     

        vim svnserve.conf  

          

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

          

        [general]  

          

        anon-access=none  

          

        auth-access=write  

          

        password-db=passwd  

          

        authz-db=authz  

     

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

     

     

        vim authz  

          

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

          

        [groups]  

          

        svnadmin = svntest, fenghaichao,wuzehong,wangxu,linchao,zhaorenjun,linweiji

        [/]

    @svnadmin = rw  

    fenghaichao=rw

    wuzehong=rw

    wangxu=rw

     

        [repos1:/]  

    @svnadmin = rw  

    fenghaichao=rw

    wuzehong=rw

    wangxu=rw

     

     

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

          

        [groups]  

          

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

          

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

          

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

          

        <用户名> = <权限>  

          

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

          

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

          

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

          

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

          

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

          

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

     

    4. 修改用户密码文件passwd

     

     

        vi passwd  

          

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

          

        [users]  

          

    svnadmin=svntest123

    wuzehong=svntest123

    wangxu=svntest123

    .....=......

          

        用户密码的配置格式:  

          

        [users]  

          

        <用户1> = <密码1>  

          

        <用户2> = <密码2>  

          

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

     

    启动SVN

     

        svnserve -d -r /home/svnadmin/subversion/svndata  

          

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

          

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

     

    基本测试

     

     

        svn co svn://11.137.136.195/repos1  

          

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

     

    问题汇总:

     

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

     

     

        错误提示需要安装expat(下载expat2.tar.gz)  

          

          

        cd /usr/local  

          

        tar -xvzf expat2.tar.gz  

          

        cd expat2  

          

        ./configure  

          

        make  

          

        make install  

     

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

     

     

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

          

          

        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   

     

    3.configure: error: subversion requires zlib

     

        错误提示需要安装zlib  

          

        下载zlbhttp://zlib.net/  

          

        cd /usr/local  

          

        tar -xvzf zlib-1.2.5.tar.gz  

          

        cd zlib-1.2.5  

          

        ./configure  

          

        make  

          

        make install  

     

    4.svn checkout https://xxx.xxx.xxx/  

     

        svn: SSL is not supported  

          

        从网上查了一下,说是在执行./configure 时要加上--with-ssl  

          

         ./configure --with-openssl=/usr/local/ssl --with-zlib=/usr/local/zlib --with-ssl --with-libs=/usr/local/ssl  

     

     

     5./usr/local/ssl/lib/libssl.a: could not read symbols: Bad value  (一般发生在make时,此问题多为64位系统引起,需要重新编译zlib)

    cd /usr/local/zlib-1.2.5.1/

    CFLAGS="-O3 -fPIC" ./configure

    make

    make install

    make clean

    转载请注明原文地址: https://ju.6miu.com/read-664389.html

    最新回复(0)