我正在运行 CentOS 6.3 64 位和 DirectAdmin 控制面板。目前我已经安装了 Apache Subversion 1.6.19,没有任何问题。
我已经使用 yum 安装了 expat 、 expat-devel 和 neon-devel。
安装 Apache Subversion 1.6.19 时,此配置命令可以正常工作:
./configure --prefix=/usr --with-ssl --with-apxs=/usr/sbin/apxs --with-apr=/usr/bin/apr-config
但是,当使用与上面相同的配置命令安装 Apache Subversion 1.7.7 时,执行命令“make”后出现此错误:
/etc/httpd/lib/libaprutil-1.so: undefined reference to `XML_StopParser'
collect2: ld returned 1 exit status
make: *** [subversion/svnadmin/svnadmin] Error 1
但是我发现我可以通过在配置命令中添加以下内容来解决该问题:
--with-expat=includes:lib_search_dirs:libs
因此它看起来像这样:
./configure --prefix=/usr --with-ssl --with-expat=includes:lib_search_dirs:libs --with-apxs=/usr/sbin/apxs --with-apr=/usr/bin/apr-config
但是该配置命令会给出以下警告:
configure: WARNING: Expat found amongst libraries used by APR-Util, but Subversion libraries might be needlessly linked against additional unused libraries. It can be avoided by specifying exact location of Expat in argument of --with-expat option.
所以我想解决这个问题。我做了很多实验,但还是无法弄清楚如何在 configure 命令中“指定 Expat 的确切位置”,以及如何找出该位置应该在哪里?
然而经过大量搜索后我发现了这个:http://subversion.tigris.org/issues/show_bug.cgi?id=3997- 这是一位 FreeBSD 用户说的话:
Building Subversion 1.7.x on FreeBSD currently requires a configure flag:
--with-expat=/usr/local/include:/usr/local/lib:expat
As that is the default location of expat on that platform, it would be nice if configure detected it automatically.
但是我没有使用 FreeBSD,而是运行 CentOS 6.3 64 位。还记得我说过我已经使用 yum 安装了 expat、expat-devel 和 neon-devel。
但是我尝试使用 FreeBSD 用户发布的 expat/command 路径,它似乎有效,运行 configure 命令时不会出错,运行“make”时也不会出错。这是我当时使用的:
./configure --prefix=/usr --with-ssl --with-expat=/usr/local/include:/usr/local/lib:expat --with-apxs=/usr/sbin/apxs --with-apr=/usr/bin/apr-config
但是该服务器是生产服务器,因此我需要您的帮助,以建议这是否也可以在 CentOS 服务器上运行? expat 命令中的以下路径在 CentOS 上是否正确?:
--with-expat=/usr/local/include:/usr/local/lib:expat
如果不是,请建议应该改成什么。在此先感谢您对此的任何确认或帮助!
我错了,FreeBSD 中的 expat 位置在 CentOS 上不起作用。这:
./configure --prefix=/usr --with-ssl --with-expat=/usr/local/include:/usr/local/lib:expat --with-apxs=/usr/sbin/apxs --with-apr=/usr/bin/apr-config
执行“make”后出现此错误:
/etc/httpd/lib/libaprutil-1.so: undefined reference to `XML_StopParser'
collect2: ld returned 1 exit status
make: *** [subversion/svnadmin/svnadmin] Error 1
我放弃了。我在网上找不到任何关于如何在上述 CentOS 命令中指定 expat 位置的答案(在找到解决方案后搜索了一个多星期),并在多个地方发帖寻求帮助。
答案1
你有安装了expat-devel
包,对吗?