【发布时间】:2009-11-17 16:10:11
【问题描述】:
下午好,
我在使用 libxml2 时遇到了困难。
我尝试构建 Perl 模块 XML-LibXML,它是我们标准运行时环境的一部分。但是,这次在 RHEL5 机器上安装失败,因为构建过程抱怨缺少 libxml2:
$> perl Makefile.PL LIB=/foo/lib/perl PREFIX=/foo INSTALLDIRS=site 启用本机 perl UTF8 运行 xml2-config...ok (2.7.6) 正在寻找 -lxml2... 不 正在寻找 -llibxml2... 不 未找到 libxml2但是,该文件是可用的。开始构建
perl Makefile.PL LIB=/usr/inform/target/lib/perl PREFIX=/usr/inform/target INSTALLDIRS=site导致了真正问题的更多证据:
[...] 无法为模块 Conftest 加载“blib/arch/auto/Conftest/Conftest.so”:/usr/inform/target/lib/libxml2.so.2:reloc 后无法恢复段 prot:/usr/lib 中的权限被拒绝/perl5/5.8.8/i386-linux-thread-multi/DynaLoader.pm 第 230 行。 在 test.pl 第 2 行 [...]经过一番调查,我发现问题似乎是 libxml2.so 是使用文本重定位创建的:
因为我们在目标机器上激活了 SElinux,所以链接到 libxml.2 失败了!
是否有可能正确创建libxml2,还是我必须要求管理员扭曲 SElinux 以允许重定位?
我真的不敢相信我是唯一一个在 SElinux 处于活动状态的 Linux 上遇到此问题的人。我错过了什么?
感谢任何帮助!
问候, 斯蒂芬
【问题讨论】: