赞助连接

赞助连接

阅 读 文 章

SCO OpenServer下Subversion的编译及使用

[来源:网上转载 (http://bbs.chinaunix.net) | 作者:网友(网络转载) | 时间:2008-09-19 | 浏览:人次 ]

1.        说明
Subversion是一个开源的版本管理工具,其目标是为了代替目前比较流行的另一版本管理工具CVS。
由于Subversion没有提供SCO *** 作系统下的二进制安装包,因此必须使用源 *** 手工编译。
网上有人介绍过在SCO下分步编译berkeley db、Apache、Subversion的方法,但那个方法既烦琐、又非必须,而且还不一定能成功。本文所介绍的是直接使用Subversion的源 *** 包进行编译的方法。
Subversion 1.1之前的版本将代 *** 仓库(repository)保存在berkeley db数据库中,从版本1.1开始突破了此 *** ,可以选择以普通文件的形式对软件版本进行管理。因此在版本的选择上最好选择最新的版本,以获得更为完善的功能。
本文中使用的Subversion版本为1.3.0。

2.        源 *** 下载
Subversion的源 *** 可以从其官方网站(http://subversion.tigris.org)下载。目前的最新版本是1.3.0。
下载后将源 *** 包在SCO下解压、解包。本文中假设解包后的目录为/usr/test/subversion-1.3.0。

3.        编译前准备
本文中所讲述的安装及配置过程均在SCO OSR 5.0.6下完成。编译过程中用到了开源软件gcc和libiconv。
3.1.        *** 作系统环境
*** 作系统的版本为SCO Openserver 5.0.6(KernelID  2000-07-27),安装了开发系统(SCO OpenServer Development System (ver 5.1.2A))。
除此之外,系统未安装其它补丁。
3.2.        gcc
Subversion的源 *** 中使用了long long数据类型,而这种类型在SCO自带的cc编译器下是不被支持的。因此,必须安装gcc用于编译。
gcc编译器可以从SCO的官方网站下载二进制安装包(版本为2.95.2),也可以通过使用gcc的源 *** 编译获得更高的版本。
3.3.        libiconv
Subversion在实现时提供了语言转换的功能。但由于SCO在编 *** 转换方面做的比较差,在缺省编译下执行Subversion命令时会报下面的错误:
iconv_open cannot open conversion file /usr/lib/nls/conv/UTF-8_ISO8859-1
解决的办法是在编译时使用GNU libiconv替换SCO自带的iconv函数。
libiconv的源 *** 可以从www.gnu.org下载。下载后需要编译及安装。在编译时建议使用静态编译,只生成静态库。
本文中假定libiconv的安装目录为/usr/test/iconv。

4.        配置
为了避免由于误 *** 作破坏Subversion的源 *** ,一般将配置和编译在另外的目录下进行。
在/usr/test下创建svntmp目录。进入svntmp目录,执行以下命令:
../subversion-1.3.0/configure --prefix=/usr/local/svn --without-berkeley-db --enable-all-static --disable-nls --disable-mod-activation --enable-dso=no --enable-javahl=no CFLAGS="-I/usr/test/iconv/include" LDFLAGS="-L/usr/test/iconv/lib -liconv"
其中几项主要的参数含义如下:
prefix:Subversion的安装目录,完成编译后执行make install时将相关文件拷贝至该目录下。缺省为/usr/local。也可以指定其他目录。
without-berkeley-db:代 *** 库不存放在数据库中,而是使用普通文件(目录)的形式管理。
enable-all-static:不使用动态链接库,只生成静态二进制 *** 。用于提高可复制 *** 。
CFLAGS、LDFLAGS:用于指定libiconv的存放路径,替换SCO自带的iconv。
其它参数含义见subversion-1.3.0/configure --help。

5.        编译
首先,进入源 *** 目录(subversion-1.3.0),手工修改以下两个程序:
        apr/network_io/unix/sockaddr.c
        neon/src/ne_socket.c
在这两个程序中增加全局变量
        extern int h_errno;
修改完成并保存后,在svntmp下执行
        make
Subversion的源 *** 包较大,编译所需要的时间和机器配置有关,因此建议使用配置高一些的机器进行编译。

6.        安装
在完成Subversion的编译后,使用su命令切换至root用户,执行
        make install
将编译出来的Subversion系统安装到指定目录下(本文中为/usr/local/svn)。

7.        安装后的检查和验证
进入/usr/local/svn,检查目录和文件。该目录下包括了bin、lib、include、man等多个目录。其中lib和include目录是用于二次开发的。
对于大多数用户,只需要bin目录下”svn”打头的程序就足够了。由于本文中编译使用了enable-all-static选项,因此可以直接将这几个程序复制到别的机器上使用,而不需要同时复制其它的支持库。
将Subversion安装路径加入执行搜索路径
        PATH=$PATH:/usr/local/svn/bin; export PATH
然后执行
        svn help
将得到Subversion的版本信息和使用方法的提示,这就说明Subversion已经可以正常使用了!

8.        使用
Subversion的使用详见官方文档。


呵呵,肯定是好东东,先收下


Subversion  for SCO OSR 5.0.x执行 ***
将几部分下载后传至SCO下,创建一个空目录,将这几个文件放在一起,执行cat * >svn_sco.tar.gz,然后解开,拷贝到/usr/local或/usr等目录下就能直接使用了。




2006-3-8 16:50
  下载次数: 62 xaa.tar (1.95 MB)
 第一部分

第二部分


2006-3-8 16:52
  下载次数: 61 xab.tar (1.95 MB)
 第二部分

第三部分


2006-3-8 16:54
  下载次数: 63 xac.tar (1.95 MB)
 第三部分

第四部分(完)


2006-3-8 16:55
  下载次数: 55 xad.tar (610.33 KB)
 第四部分

ftp下载:
执行 *** :ftp://ftp_sunlandown:12345678@61.156.239.33/sco/svn_sco.tar.gz
完整包:ftp://ftp_sunlandown:12345678@61 ... /svn_sco_all.tar.gz




偶的编译问题
1.环境:sco OpenServer5.0.6+RS506A+OSS646C+gwxlibs-1.3ba
2.编译器:gnutools-5.0.7Kj
3.编 *** 转换:libiconv-1.9.2
4.subversion版本:subversion-1.3.0/subversion-1.3.2
5.步骤:
在subversion的源文件目录下执行
(1)./configure --prefix=/usr/local/svn --without-berkeley-db --enable-all-static --disable-nls --disable-ipv6 --disable-mod-activation --enable-dso=no --enable-javahl=no CFLAGS="-I/usr/local/iconv/include" LDFLAGS="-L/usr/local/iconv/lib -liconv"
(2)gmake
出错:
sockaddr.c: In function `call_resolver':
sockaddr.c:389: `AF_INET6' undeclared (first use in this function)
sockaddr.c:389: (Each undeclared identifier is reported>



QUOTE:原帖由 novemberrain 于 2006-9-12 15:59 发表
偶的编译问题
1.环境:sco OpenServer5.0.6+RS506A+OSS646C+gwxlibs-1.3ba
2.编译器:gnutools-5.0.7Kj
3.编 *** 转换:libiconv-1.9.2
4.subversion版本:subversion-1.3.0/subversion-1.3.2
5.步骤:
在subversion的源文件目录下执行
(1)./configure --prefix=/usr/local/svn --without-berkeley-db --enable-all-static --disable-nls --disable-ipv6 --disable-mod-activation --enable-dso=no --enable-javahl=no CFLAGS="-I/usr/local/iconv/include" LDFLAGS="-L/usr/local/iconv/lib -liconv"
(2)gmake
出错:
sockaddr.c: In function `call_resolver':
sockaddr.c:389: `AF_INET6' undeclared (first use in this function)
sockaddr.c:389: (Each undeclared identifier is reported>



QUOTE:原帖由 snow888 于 2006-9-12 20:01 发表


第一个问题:
在 sockaddr.c 的 389 行的 AF_INET6 没有定义,找到定义 AF_INET6 的头文件,在 sockaddr.c 的前面用 #include 调用.
第二个问题:
SCO OpenServer 5.0.6 不支持 IPV6 ,在 configure 配置时加入 ...
1.AF_INET6在sco5.0.6中没有定义,自己在sockaddr.c中加的
2.subversion-1.3.2和subversion-1.3.0中configure不支持--disable-IPV6

但是我现在做的时候还有两个问题:
1.用gcc(sco的ver 5.0.7Kj)编译iconv时总是无法编译成不依赖库文件单独执行的

2.有一次不知道是怎么编译subversion成功了,但是不是可以单独执行的,我的configure如下:
./configure --prefix=/usr/local/svn --enable-all-static --enable-static=yes --disable-nls --disable-mod-activation --enable-dso=no --enable-javahl=no --without-berkeley-db CFLAGS="-I/usr/local/iconv/include" LDFLAGS="-L/usr/local/iconv/lib -liconv"

3.编译subversion-1.3.2时报错:
UX:i386ld: WARNING: option '-dn' is illegal with option '-R'
UX:i386ld: ERROR: /usr/lib/libgdbm.so: input shared object in static mode
collect2: ld returned 1 exit status
gmake: *** [subversion/clients/cmdline/svn] Error 1


都快一周了还没搞定,郁闷死
各位高人帮俺看看,谢谢!


TAG标签 : 使用 编译 目录 Subversion 版本 执行 SCO 下载 安装

最新评论 共有0位网友发表了评论

发表评论

评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名:(注册)
密码:
验证码:
匿名发表
网站地图友情连接交流论坛网站投稿广告服务联系我们留言本站长统计
Some rights reserved: www.chmhome.com, 鄂ICP备07010232号 E-mail:chinakafei@live.com,QQ:552766
中国咖啡技术网(Chmhome):国外编程技术书籍,中文编程手册,经典编程文章,交流技术,技术软件下载,计算机论文,毕业论文.