浅析Subversion升级问题

开发 项目管理
本文简单介绍一下如何Subversion升级的问题,希望对Subversion的使用者有所帮助。

随着Subversion版本的更新,Subversion升级问题已经呈现在大家的眼前,那么怎么升级Subversion呢,在这里发表一下个人的见解,希望对大家有所帮助。
在我的SlackwareLinux里,将Subversion从1.4.6升级到1.6.11,Apache使用最新的2.2.15版本,都从源码编译安装。

Subversion升级完后Apache启动不了,错误提示如下:

Cannotload/usr/local/apache2.2/modules/mod_dav_svn.sointoserver:/usr/local/apache2.2/modules/mod_dav_svn.so:undefinedsymbol:svn_log__updatem,很怀疑是Apache和Subversion使用了不兼容的libapr,在Subversion的INSTALL文件里如是说:
WerecommendusingthelatestApache.However,whateverversionyouchoose,you*must*ensurethatSubversionandApacheareusingthesameversionofAPR.Ifyoudon't,thingswillsegfaultandbreak.

ldd看一下:
ldd/usr/local/apache2.2/bin/httpd
ldd/usr/local/svn1.6/bin/svn发现它们果然使用了不同的libapr,前者是用的操作系统自带的,后者用的Subversion软件包自己的。

APR的全称是ApachePortableRuntime,用过mod_perl或ApacheAPI编程的应该很清楚这个。它提供一个抽象的操作系统级服务,例如文件和网络IO、内存管理等。它也包含了一些实用函数例如哈希表、校验和、参数处理等。尽管APR最开始是为pache服务器开发的,但已发展成为一个标准库,被Subversion和其他网络产品所使用,为软件跨平台运行提供方便。于是重新编译Apache和Subversion,让它们使用相同的libapr和libapr-util,过程如下:

1.解开Subversion-1.6.11.tar.bz2和Subversion-deps-1.6.11.tar.bz2(后者包含了apr和apr-util,以及其他Subversion依赖库例如SQLite等),得到同一个目录Subversion-1.6.11。

2.cdSubversion-1.6.11/apr;./configure;make&&makeinstall
安装apr,默认安装到/usr/local/apr目录。

3.cdSubversion-1.6.11/apr-util;./configure--with-apr=/usr/local/apr;make&&makeinstall
安装apr-util,默认安装到上述相同目录。

4.进入Apache的源代码目录,安装Apache:

./configure--prefix=/usr/local/apache2.2--enable-so--enable-dav\
--with-apr=/usr/local/apr--with-apr-util=/usr/local/apr
make&&makeinstall

5.再次回到Subversion-1.6.11,安装Subversion升级:
./configure--prefix=/usr/local/svn1.6--with-apr=/usr/local/apr\
--with-apr-util=/usr/local/apr--with-apxs=/usr/local/apache2.2/bin/apxs
make&&makeinstall
关键之处是第4步和第5步里,都使用--with-apr和--with-apr-util指定了同一个apr安装目录。
再次启动Apache,一切OK。

这次升级才发现Subversion在今年2月已变成了Apache的子项目,这是一件好事。一是因为Apache项目的代码质量控制得很好,二是Apache项目的文档都很完美。有一本关于Subversion的自由图书:Subversion与版本控制,主页在: http://svnbook.red-bean.com/">http://svnbook.red-bean.com/。本文介绍Subversion升级完毕,对你有启示吗?欢迎关注本文的其他相关报道。
 

【编辑推荐】

  1. CentOS系统中安装subversion并使用svn+ssh访问
  2. 三大主流Subversion客户端初探
  3. 如何结合使用Subversion和Eclipse
  4. 七步搞定Subversion服务器在Ubuntu下的配置
  5. Subversion日期解析函数缓冲区溢出漏洞
责任编辑:佚名
相关推荐

2010-05-18 10:08:36

Subversion版

2010-05-24 13:09:23

Subversion端

2010-05-18 10:34:14

Subversion合

2010-05-27 17:01:22

启动Subversio

2010-05-19 11:17:53

Subversion插

2010-05-14 17:24:55

Subversion编

2010-05-19 12:41:32

Subversion

2010-09-17 16:29:56

2021-02-03 13:57:50

Ansiblesudo运维

2009-09-22 17:32:38

Hibernate A

2010-02-01 17:25:09

Python多线程

2010-02-04 10:27:33

Android DDM

2010-12-27 17:04:07

应用程序版本升级

2011-03-21 10:23:06

2010-01-25 14:18:46

C++对象模型

2009-07-10 18:02:05

MyEclipseMySQL

2010-04-16 12:57:20

Spatial数据加密

2010-01-21 16:18:06

C++语言

2010-08-27 09:26:32

DHCP server

2009-06-04 09:47:48

MySQL隐藏控件TMPDIR
点赞
收藏

51CTO技术栈公众号