• SUSE11SP3--安装svn


    SUSE上安装新版本的subversion是一件很麻烦的事情,涉及到的依赖太多,包括需要更新部分工具的版本。

    为了以较小的代价安装subversion,我决定在SUSE11下安装 subversion-1.6.17。

    ---------------------------------------------------------------------------------------------

    wget http://subversion.tigris.org/downloads/subversion-1.6.17.tar.bz2 

    wget http://subversion.tigris.org/downloads/subversion-deps-1.6.17.tar.bz2

    tar xjvf  subversion-1.6.17.tar.bz2

    tar xjvf  subversion-deps-1.6.17.tar.bz2

    ./configure --prefix=/home/msgplus/bin/subversion --without-berkeley-db --with-openssl=/usr/local/ssl (红色部分修改)

    make

    make install 


    报错1:

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

    解决1:

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

    wget http://sourceforge.net/projects/expat/files/expat/2.1.0/expat-2.1.0.tar.gz/download

    安装 

    报错2:

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

    解决2:

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

    安装

    报错3: 

    configure: error: subversion requires zlib

    解决3

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

    wget http://liquidtelecom.dl.sourceforge.net/project/libpng/zlib/1.2.8/zlib-1.2.8.tar.gz 

    安装


    报错4: 

    /usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../x86_64-suse-linux/bin/ld: cannot find -lssl
    collect2: ld returned 1 exit status

    解决4:

    重新编译openssl 

    ./config shared zlib-dynamic

    make

    sudo make install

    报错5:

    找不到ssl和crypto

    解决5: 

    ln -s /usr/local/ssl/lib64/libssl.so /usr/local/ssl/lib/libssl.so

    ln -s /usr/local/ssl/lib64/libcrypto.so /usr/local/ssl/lib/libcrypto.so 

    报错6:

    svn help

    找不到ssl库

    解决6:

    vim ~/.profile 

    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/ssl/lib64 

    export PATH=$PATH:$HOME/bin/subversion/bin 

    ----------------------------------------------------------------------------------------------------------

    前言

    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,安装方法如下:

    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

  • 相关阅读:
    108. Convert Sorted Array to Binary Search Tree
    How to check if one path is a child of another path?
    Why there is two completely different version of Reverse for List and IEnumerable?
    在Jenkins中集成Sonarqube
    如何查看sonarqube的版本 how to check the version of sonarqube
    Queue
    BFS广度优先 vs DFS深度优先 for Binary Tree
    Depth-first search and Breadth-first search 深度优先搜索和广度优先搜索
    102. Binary Tree Level Order Traversal 广度优先遍历
    How do I check if a type is a subtype OR the type of an object?
  • 原文地址:https://www.cnblogs.com/onlyforcloud/p/4432245.html
Copyright © 2020-2023  润新知