- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SCO OpenServer下Subversion的编译及使用
SCO OpenServer下Subversion的编译及使用
说明
Subversion是一个开源的版本管理工具,其目标是为了代替目前比较流行的另一版本管理工具CVS。
由于Subversion没有提供SCO操作系统下的二进制安装包,因此必须使用源码手工编译。网上有人介绍过在SCO下分步编译berkeley db、Apache、Subversion的方法,但那个方法既烦琐、又非必须,而且还不一定能成功。
本文所介绍的是直接使用Subversion的源码包进行编译的方法。
Subversion 1.1之前的版本将代码仓库(repository)保存在berkeley db数据库中,从版本1.1开始突破了此限制,可以选择以普通文件的形式对软件版本进行管理。以文件的形式对软件版本进行管理具有更好的灵活性和可维护性。因此在版本的选择上最好选择最新的版本,以获得更为完善的功能。
本文中使用的方法可以对1.3.x、1.4.x和最新的1.5.x进行编译。
源码下载
Subversion的源码可以从其官方网站()下载。目前的最新版本是1.5.4。从1.4.x起,Subversion的源代码分成了核心代码和依赖代码两部份。
下载后将源码包在SCO下解压、解包。本文中假设解包后的目录为/usr/test/subversion-1.5.4。
编译前准备
本文中所讲述的安装及配置过程均在SCO OSR 5.0.6下完成。编译过程中用到了开源软件gcc和libiconv。
操作系统环境
操作系统的版本为SCO Openserver 5.0.6(KernelID 2000-07-27),安装了开发系统(SCO OpenServer Development System (ver 5.1.2A))。
除此之外,系统未安装其它补丁。
gcc
Subversion的源码中使用了long long数据类型,而这种类型在SCO自带的cc编译器下是不被支持的。因此,必须安装gcc用于编译。
gcc编译器可以从SCO的官方网站下载二进制安装包(版本为2.95.3)。当然,也可以通过其他方式安装不同版本的gcc。根据我的经验,使用更高版本的编译器除了在心理上感觉比较良好外并不能带来特别的好处,反而可能会由于安装不当而导致无法正常使用。
安装完gcc后应该配置好相关环境、先写个”hello world”之类的小程序编译一下,以避免后面的过程中不必要的麻烦。
libiconv
Subversion使用iconv库实现语言编码转换的功能。但由于SCO自带的iconv库在编码转换方面做的比较差,在缺省编译下执行Subversion命令时会报下面的错误:
iconv_open cannot open conversion file /usr/lib/nls/conv/UTF-8_ISO8859-1
解决的办法是在编译时使用GNU libiconv替换SCO自带的iconv函数。
libiconv的源码可以从下载。下载后需要编译及安装。在编译时建议使用静态编译,只生成静态库。默认情况下libiconv的头文件和库文件会被安装在/usr/local目录下。当然,你也可以将文件安装在别的位置。在后面的工作中会用到libiconv的安装路径。
修改源码包
apr/network_io/unix/sockaddr.c
Subversion提供了对IPv6的支持,在程序中用到了宏定义AF_INET6。而SCO并不支持IPv6,因此也没有定义该宏。为使程序能正常编译,需要在apr/network_io/unix/sockaddr.c的声明部份增加以下的定义:
#define AF_INET6 10
neon/configure
同样是为了对IPv6提供支持,neon/configure在执行配置时需要对系统进行检测,但该检测事实上存在缺陷,会导致后面的编译过程无法通过。打开这个文件,然后找到下面这一行:
if test $ne_cv_libsfor_getaddrinfo = not found; then
在这行之前再增加一行:
ne_cv_libsfor_getaddrinfo=”not found”
使后面的检测过程失效。
配置
为了避免由于误操作破坏Subversion的源码,一般建议将配置和编译在另外的目录下进行。
在/usr/test下创建svntmp目录。进入svntmp目录,执行以下命令:
../subversion-1.5.4/configure --prefix=/usr/test/svn --disable-shared --without-berkeley-db --without-serf --with-editor=vi CFLAGS=-I/usr/loc
您可能关注的文档
- 2016届《创新设计》数学一轮(文科)人教B版配套作业 第1章 第3讲 充分条件 、必要条件与命题的四种形式.doc
- 2013年高考数学 备考30分钟课堂集训专题系列 专题10 概率统计 理(B卷)(教师版).doc
- 2016届《创新设计》数学一轮(文科)人教B版配套作业 第1章 第1讲 集合及其运算.doc
- 2011级B部第十二周完善题生物必修一.doc
- 06年C题_易拉罐的尺寸最优设计问题.ppt
- 2016届《创新设计》数学一轮(文科)人教B版配套作业 第2章 第1讲 函数及其表示.doc
- C语言省试题(5-break-continue)101016.ppt
- 省东港市小甸子中学八年级英语上册 Unit 1 Where did you go on vacation Section B 3导学案.doc
- 2013-2014第一学期期末 五年级英语插班生测试卷B卷及答案.doc
- 2015-16年度高二化学第一学期期末质量检测试卷B卷.doc
文档评论(0)