SVN篇-Linux下非yum安装Subversion

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可以说是安装好了,接下来将持续更新使用及维护的相关文章。。。。

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,794评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,050评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,587评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,861评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,901评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,898评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,832评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,617评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,077评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,349评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,483评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,199评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,824评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,442评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,632评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,474评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,393评论 2 352