0

我有 RHEL 32 位操作系统,我已经安装了 libwsman1 和 openwsman-perl rpm 以在我的 perl 脚本中使用 wsman 查询。我安装了两个版本的 perl——perl5.8.8 和 perl5.14.4。我的 perl 脚本在 perl5.8.8 上运行良好,但是当我使用 perl5.14.4 执行它时给出“分段错误(核心转储)。在我看来,模块/库对两个 perl 版本都不可用。如果我的假设是正确,我怎样才能使它对两个 perl 模块都可用?我在可能有两个不同版本的 perl 可用的 linux 系统中看到了这个问题。虽然如果我在那个系统上只有 perl5.14.4 它工作正常。我试着得到使用 gdb 的代码转储,输出是这样的 - 从 /usr/bin/perl5.14.4 读取符号...(未找到调试符号)...完成。

warning: .dynamic section for "/lib/libc.so.6" is not at the expected address

warning: difference appears to be caused by prelink, adjusting expectations

warning: .dynamic section for "/usr/lib/libgssapi_krb5.so.2" is not at the expected address

warning: difference appears to be caused by prelink, adjusting expectations

warning: .dynamic section for "/lib/libcrypto.so.6" is not at the expected address

warning: difference appears to be caused by prelink, adjusting expectations

warning: .dynamic section for "/usr/lib/libz.so.1" is not at the expected address

warning: difference appears to be caused by prelink, adjusting expectations
Reading symbols from /lib/libnsl.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib/libnsl.so.1
Reading symbols from /lib/libdl.so.2...(no debugging symbols found)...done.
.
.
.
.
Loaded symbols for /lib/libkeyutils.so.1
Reading symbols from /lib/libresolv.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib/libresolv.so.2
Reading symbols from /lib/libselinux.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib/libselinux.so.1
Reading symbols from /lib/libsepol.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib/libsepol.so.1
Core was generated by `perl5.14.4 openwsman_client_FAN.pl'.
Program terminated with signal 11, Segmentation fault.
#0  0x00000000 in ?? ()

任何帮助都深表感谢。

谢谢 ...

4

1 回答 1

2

不同版本的 Perl 不能共享 XS 库。如果您的供应商没有为两个版本的 Perl 提供它们的库,那么您必须自己编译它们。cpan应该为你做艰苦的工作。

如果您不喜欢一直使用环境变量和 cpan 配置,perlbrew可以让您的生活更轻松。

于 2014-11-11T14:13:00.507 回答