转自:https://blog.csdn.net/ncc1995/article/details/96309798?locationNum=11&fps=1 
作者:ncc1995 

Linux系统

安装svn就是在Ubuntu中安装subversion,因为是老师分的服务器,并不是root用户,整个过程就麻烦了许多。
1、非root用户安装软件

这时候只有通过源码来安装。

以apr为例(我最先安的apr)

    找到apr软件的下载地址,Ubuntu系统我一般下载.tar.gz的文件

        https://www-us.apache.org/dist//apr/apr-1.7.0.tar.gz

    在当前用户文件夹下执行

    wget https://www-us.apache.org/dist//apr/apr-1.7.0.tar.gz

    一般来说在哪个文件夹下运行,就是下载到哪个文件夹了。

       但是我遇到一个问题,就是说我的文件夹是/home/ncc,直接运行上面命令会提示没有权限,执行下面命令就可以了  

cd /home/ncc && wget https://www-us.apache.org/dist//apr/apr-1.7.0.tar.gz

    解压文件

tar xzvf apr-1.7.0.tar.gz

    然后源代码中有configure文件,执行

./configure --prefix=/home/ncc/software/apr

目录要提前创建好。而且prefix前面一定要加  --  !!!!我就是忘了,然后后面安的时候路径一直不对,一直说我没有权限,因为它的默认路径是/usr/local/apr,这个不是root用户访问不了的。

    接下来运行make && make install就可以了,它会自动安到上面自定义的路径中。

2、安装subversion所需的各种依赖

我查了好多网页,其中apr和apr-util是都必须要安的,我就先安了这两个,但是要注意的是,apr和apr-util版本是要互相对应的。比如我安的apr-1.7.0,对应的apr-util-1.6.1。

安完了这两个之后我就直接去安subversion了,这时候它还需要什么依赖会提示,之后就按照它的提示继续去安各种包。

1、安装apr

这个比较简单,按照步骤一步一步来就可以,我中间遇到一个比较智障的问题,就是上面说的prefix前忘了加 --

 

    下载源码文件:wget https://www-us.apache.org/dist//apr/apr-1.7.0.tar.gz
    tar xzvf apr-1.7.0.tar.gz
    cd apr-1.7.0
    ./configure --prefix=/home/ncc/software/apr(apr为自己创建的安装目录)
    make
    make install

2、安装apr-util(版本与apr对应)

    下载源码文件:wget https://www-eu.apache.org/dist//apr/apr-util-1.6.1.tar.gz
    tar xzvf apr-util-1.6.1.tar.gz
    cd apr-util-1.6.1
    ./configure --prefix=/home/ncc/software/apr-util --with-apr=/home/ncc/software/apr
    make
    make install

3、安装sqlite

这一部分是在安了一下subversion之后,提示说还需要安sqlite,并在命令行中给出了所要求的版本以及下载链接,所以安这个的时候一定要注意版本问题!!

    下载压缩文件:wget https://www.sqlite.org/2015/sqlite-amalgamation-3081101.zip
    unzip sqlite-amalgamation-3081101
    mv sqlite-amalgamation-3081101 subversion-1.12.0(subversion要先现在并解压好)
    mv sqlite-amalgamation-3081101 sqlite-amalgamation(重命名,不然会找不到sqlite)

4、安装openssl

这个是因为安装serf时候需要的,我试了一下电脑中有的OpenSSL,发现不行,需要自己安。

    下载文件:wget https://www.openssl.org/source/openssl-1.0.2s.tar.gz
    tar xzvf openssl-1.0.2s.tar.gz
    cd openssl-1.0.2s
    ./config -fPIC --prefix=/home/lichongchong/software/openssl/ enable-shared
    make
    make install

5、安装serf

由于安装的是1.3.9版本的serf,所以需要用scons来安装,不能用make。

    下载源码文件:wget https://sourceforge.net/projects/scons/files/scons/3.0.0/scons-3.0.5.tar.gz/download
    tar xzvf scons-3.0.5.tar.gz
    cd scons-3.0.5
    python setup.py install(在这之前又安了一下Python)
    scons --version
    下载serf源码文件:wget https://www.apache.org/dist/serf/serf-1.3.9.tar.bz2
    tar xjf serf-1.3.9.tar.bz2
    cd serf-1.3.9
    scons PREFIX=serf APR=/home/lichongchong/software/apr APU=/home/lichongchong/software/apr-util OPENSSL=/home/lichongchong/software/openssl

错误1:print 'Warning: Used unknown variables:', ', '.join(unknown.keys())

解决:打开文件注释掉这句话

错误2:cannot use a string pattern on a bytes-like object
解决:
【Linux】SVN安装,安装subversion,实现windows和Ubuntu共享-LMLPHP

6、安装subversion

    下载文件:wget https://www-eu.apache.org/dist/subversion/subversion-1.12.0.tar.gz
    tar subversion-1.12.0.tar.gz
    cd subversion-1.12.0
     ./configure --prefix=/home/lichongchong/software/subversion --with-apr=/home/lichongchong/software/apr --with-apr-util=/home/lichongchong/software/apr-util --enable-maintainer-mode --with-serf=/home/lichongchong/software/serf
    make
    make install

错误3:configure: error: Subversion requires LZ4 >= r129, or use --with-lz4=internal

解决:./configure命令添加 --with-lz4=internal选项

错误4:configure: error: Subversion requires UTF8PROC

解决:./configure命令添加  --with-utf8proc=internal

    ./configure --prefix=/home/lichongchong/software/subversion --with-apr=/home/lichongchong/software/apr --with-apr-util=/home/lichongchong/software/apr-util --enable-maintainer-mode --with-serf=/home/lichongchong/software/serf --with-lz4=internal --with-utf8proc=internal

错误5:configure: error: failed to recognize APR_INT64_T_FMT on this platform

解决:用vim打开configure

把下面这三句话注释了,就可以继续./configure操作了

# if test "x$svn_cv_pycfmt_apr_int64_t" = "x"; then
# as_fn_error $? "failed to recognize APR_INT64_T_FMT on this platform" "$LINENO" 5
# fi

错误6:libtool:error: '/usr/local/apr/lib/libapr-1.la' is not a valid libtool archive

解决:apr-util 需要依赖apr,在apr-util的lib目录下的la文件中将对apr库的依赖路径修改一下,应该是自动会改,不清楚为什么没有改,手动改了之后就好了。

错误7:svn: error while loading shared libraries: libserf-1.so.1: cannot open shared object file: No such file or directory

解决:可以看出是动态链接库没配好,因为是非root用户,百度到的去/etc下修改是行不通的。但是!可以载~/.bashrc里面配置环境变量,这个是没用限制的!方法如下!配置完以后一定要运行source ~/.bashrc!!!!!!

 

下面是Linux下非root用户安装软件的一般流程:

    获取源代码,常用wget方式直接从url下载,ubuntu可以用apt-get source来获取仓库中软件源代码;

    解压源代码安装包,多为gzip过的tar包,一般使用tar -zxvf xxx.tar.gz即可;

    切换到解压后的目录,运行 ./configure。./configure –help可以列出配置项,非root用户最重要的配置项是安装目录prefix,例如 ./configure –prefix=/path/to/bin。在无法自动找到依赖库位置的情况下,用 –with-xx-dir=xxx 的形式配置依赖库位置;

    编译源代码并复制可执行文件到指定的安装目录: make &&  make install。这两条命令可以分开执行,make时指定 -j 参数并行编译,能显著减少编译耗时(单进程编译GCC需要几个小时,开启并行编译后可缩短到十几分钟);

    使用export PATH=/path/to/bin:$PATH更新PATH变量。命令行窗口运行此命令只对本次会话中有效,可将其写到.bashrc或者.bash_profile中;

    如果安装的是动态链接库,则需要更新动态链接库路径: export LD_LIBRARY_PATH=/path/to/library:$LD_LIBRARY_PATH。最好将此命令写在.bashrc文件中,用户下次打开会话时自动执行。

第5、6步是非常必须的!!!一定要配置环境变量,不然无法使用!!我安完后运行svn --version,提示没有安subversion,我都惊呆了~~~~~~
改libaprutil-1.la文件时,没有区分出l和1的差别,导致文件好久都没打开!!!!!!!!!
 

安了整整一天,使用以及windows安装等我安的时候再同步记录.....................

-----------------------------------------------------------------------------------------------------------------------------
Linux下配置

1、创建仓库

    mkdir /home/ncc/svn
    svnadmin create /home/ncc/svn/repo0

2、修改配置

    cd /home/ncc/svn/repo0/conf
    ls
    vim svnserve.conf

改下面四个地方,分别是:

    匿名访问
    授权用户写权限
    指定用户配置文件
    指定权限配置文件

【Linux】SVN安装,安装subversion,实现windows和Ubuntu共享-LMLPHP

在conf目录下还有passwd文件,在里面添加用户。

【Linux】SVN安装,安装subversion,实现windows和Ubuntu共享-LMLPHP

修改authz文件

【Linux】SVN安装,安装subversion,实现windows和Ubuntu共享-LMLPHP

配置组的信息和组的权限,组内我只加了我自己一个用户,配置的权限是在本库内有读写权限。也可根据上面的例子配置用户信息和用户权限。

然后就可以启动svn了

  • svnserve -d -r svn/repo0

路径为自己创建的仓库。


————————————————
版权声明:本文为CSDN博主「ncc1995」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ncc1995/article/details/96309798

09-16 00:48