SVN篇-Linux下非yum安装Subversion

作者: walker86 | 来源:发表于2019-07-20 16:07 被阅读0次

    01 前言

    最近公司要推行程序包版本管理规范,需要借助svn工具进行流转程序包,于是,作为配置管理员的我又开始安装折腾工具了...

    但是没想到,这是一路血路辛酸史

    02 安装过程及踩坑记录

    首先,本人公司的权限管理及信息安全军用级别,所以我只能在内网机服务器上安装,首先否定yum安装方式,小小吐槽一下

    服务器资源:Centos 7.2 

    Subversion安装文件:subversion-1.9.10.tar.gz (官网下载)

    首先,将subversion-1.9.10.tar.gz 上传至/usr/local/java/svn文件夹下(自定义)

    # 解压

    tar zxvf subversion-1.9.10.tar.gz

    # 进入解压文件夹

    cd  subversion-1.9.10

    # 配置(--prefix是指定安装路径)

    ./configure --prefix=/usr/local/java/svn  --without-berkeley-db 

    # 编译安装

    make && make install

    如果这几步都不报错,那么接下来90%的篇幅您都可以不看了,因为实在运气好,然而实际上,报错信息是一个接着一个来。。。。

    (一) 报错了:缺少APR环境

         configure: Apache Portable Runtime (APR) libraryconfiguration

              checkingfor APR... no

              configure:WARNING: APR not found

              TheApache Portable Runtime (APR) library cannot be found.

              Pleaseinstall APR on this system and configure Subversion

              withthe appropriate --with-apr option.

              Youprobably need to do something similar with the Apache

              PortableRuntime Utility (APRUTIL) library and then configure

              Subversionwith both the --with-apr and --with-apr-util options.

              configure:error: no suitable APR found

    怎么破呢,就按照提示信息,下载apr-1.7.0.tar.gz 和apr-util-1.6.1.tar.gz两个文件,分别安装,首先安装apr

    一样解压,配置,编译,安装

    tar zxvf apr-1.7.0.tar.gz

    cd apr-1.7.0

    ./configure  --prefix=/usr/local/apr

    make && make install

    但是没那么容易,编译过程中又冒出问题

    cannot remove `libtoolT’: No such file or directory

      见招拆招,在apr-1.7.0文件夹目录下:vim  configure,找到

      $RM "$cfgfile"

       这个地方,用#注释掉,然后重新编译安装就可以了(最好make clean 一下)

     tar zxvf apr-1.7.0.tar.gz

     cd apr-1.7.0

    ./configure  --prefix=/usr/local/apr

    make clean

    make && make install

    期间我是没有再出新问题了(执行./configure该配置命令的时候,一定不能有XXXX.his unchanged.),可以安心下一步,安装apr-util了,同样的步骤

    tar zxvf apr-util-1.6.1.tar.gz

    cd apr-util-1.6.1

    ./configure  --prefix=/usr/local/apr-util

    make && make install

    问题又来了,但是居然还是会提示configure: error: no suitable APR found,但这个之前就装了呀,后来觉得应该在此步骤中引入APR的安装路径,或许可以,于是变成了这样

     ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr

    make clean

    make && make install

    这个问题终于搞定了,继续编译安装subversion

    (二) 又报错了:expat依赖缺失

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

    官网下载expat-2.2.7.tar.gz,解压,进入目录配置,编译,安装

    tar zxvf expat-2.2.7.tar.gz

    cd expat-2.2.7 

    ./configure

    make && make install 

    搞定一个

    (三) 又又报错了:缺少zlib3依赖缺失

    configure: error: subversion requires zlib

    缺什么我就给你装什么,下载zlib-1.2.11.tar.gz,解压,编译,安装三部曲走起

    tar zxvf zlib-1.2.11.tar.gz

    cd  zlib-1.2.11

    ./configure  --prefix=/usr/local/zlib

    make && make install

    这一步给力,中间没有出幺蛾子,再次编译subversion...

    (四) 又又又报错了:缺少SQLite

    configure: error: Subversion requires SQLite

     好吧,这类问题我已经习惯了,官网下载sqlite-autoconf-3290000.tar.gz ,解压后将里面的sqlite3.c复制到subversion-1.19.0/sqlite-amalgamation路径中,没有sqlite-amalgamation这个文件夹就自己创建

    (五) 又又又又又报错了:

    configure: error: failed to recognize APR_INT64_T_FMT on this platform

    这个其实我至今仍没有像明白原因:网上其他帖子都说是没装apr和apr-util,但是我之前装了呀,重新安装apr和apr-util,甚至换版本我都试了,还是不管用,差点就倒在这里了

    于是vim 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

    注释掉试试?加上# (温馨提醒,配置文件这一段出现了4次,都在大概80%-90%的位置)

    死马当活马医,编译安装,这个问题申请的消失了~内心沸腾了,以为到终点了,但是!!!

    (六) 又又又又又又报错了:还是缺少 sqlite3ext.h

    ubversion/libsvn_subr/sqlite.c:57:26: fatal error: sqlite3ext.h: No such file or directory

    compilation terminated.

    Makefile:789: recipe for target 'subversion/libsvn_subr/sqlite.lo' failed

    make: *** [subversion/libsvn_subr/sqlite.lo] Error 1

    还以为是问题三复现,想骂街了,但是仔细一下,提示缺的东西不一样,于是把 sqlite3ext.h 这个文件直接复制到svn的文件夹去,干脆,整个文件夹都复制吧

    无力再试配置,编译,安装三部曲了

    但是奇迹往往出现在这个时候,配置svn终于不提示缺东西了,但是有unchanged的状态,想想改了改命令

    ./configure --prefix=/usr/local/java/svn  --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util   --with-apr=/usr/local/apr --with-zlib=/usr/local/zlib --without-berkely-db

    make clean 

    make && make install

    这个时候节奏突然慢了下来,心里好紧张啊,但是,最后成功了!!!

    撒花庆贺,哈哈

    /usr/local/java/svn/bin/svnserve --version

    假如显示以下信息(图片是盗的,内网不方便截图),显示版本信息,说明安装成功了!

    接下来创建版本库

    和yum配置的方式差不多,只不过有时候命令行要有所改动了,

    比如yum安装之后是这样创建仓库:svnadmin create /data/svn/project/

    但是在编译安装的需要指定目录了:/usr/local/svn/bin/svnadmin create /data/svn/project/

    mkdir-p /data/svn/project

    /usr/local/svn/bin/svnadmin create /data/svn/project/

    cd /data/svn/project/

    如果出现以下画面,说明版本库创建成功

    接下来就是进入conf文件夹改各种配置了

    vim svnserve.conf   //编辑配置文件

    把以下几项显示白色的注释取消掉

    vim passwd     //编辑密码文件

    在[user]下面添加:

    zhouyou = 6789@jkl

    vim authz     //编辑访问控制文件

    在[group]下添加:

    group_admin = zhouyou   #把zhouyou账户加入group_admin组

    [/]   根目录权限设置

    zhouyou = rw  #zhouyou权限是:可读写

    @group_admin = rw  #设置组权限

    # # # # 说明:以上信息表示,只有group_admin用户组有根目录的读写权。r表示对该目录有读权限,w表示对该目录有写权限,rw表示对该目录有读写权限。

    最后一行的* =表示,除了上面设置了权限的用户组之外,其他任何人都被禁止访问本目录。

    这个很重要,一定要加上!

    配置防火墙

    vi /etc/sysconfig/iptables  //配置防火墙

    -A RH-Firewall-1-INPUT -m state --stateNEW-m tcp -p tcp -dport 3690 -j ACCEPT

    //加入此行代码

    service iptables restart//重启防火墙

    另,有开启3690端口的命令,在终端输入以下命令:

    1>iptables -I INPUT -i eth0 -p tcp --dport 3690 -j ACCEPT

    2>iptables -I OUTPUT -o eth0 -p tcp --sport 3690 -j ACCEPT

    然后保存:/etc/rc.d/init.d/iptables save

    在看看是否已经有了3690端口的开放权限:

    /etc/init.d/iptables status

    svnserve -d -r /usr/local/java/svn //启动SVN

    netstat -ln | grep 3690//查看端口状态

    然后,就可以启动svn啦,用以下命令:

    /usr/local/java/svn/bin/svnserve -d -r /data/svn/project/

    这里需要说明一下,svnserve前一定要加上svn安装路径,到bin文件夹,不然可能会提示找到svnserve这个命令 

    -r是制定版本库位置

    如果没有意外,就可以去页面端看看效果了,会如下图的2个效果:

    检出:svn://IP/project (project代表源码库位置)

    测试基本的版本管理功能(新增一个test.txt文件,加入版本管理)

    至此,svn可以说是安装好了,接下来将持续更新使用及维护的相关文章。。。。

    好不容易的一次安装操作,晚上可以给自己加个鸡腿了~

    相关文章

      网友评论

        本文标题:SVN篇-Linux下非yum安装Subversion

        本文链接:https://www.haomeiwen.com/subject/pvnllctx.html