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