Различные версии Perl, не разделяющие установленные RPM
У меня есть 32-битная ОС RHEL, я установил libwsman1 и openwsman-perl rpm, чтобы использовать запросы wsman в моем скрипте perl. У меня установлены две версии perl - perl5.8.8 и perl5.14.4. Мой сценарий perl прекрасно работает с perl5.8.8, но выдает "Ошибка сегментации (дамп ядра), когда я выполняю его с perl5.14.4. Мне кажется, что модули / библиотека недоступны для обеих версий perl. Если я предполагаю, что правильно, как я могу сделать это доступным для обоих модулей Perl? Я вижу эту проблему в системах Linux Linux, где доступны две разные версии Perl. Хотя это работает нормально, если у меня есть только 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 ?? ()
Любая помощь высоко ценится.
Спасибо...
1 ответ
Различные версии Perl не могут совместно использовать библиотеки XS. Если ваш поставщик не предоставляет обе версии Perl с библиотеками для них обоих, вы должны скомпилировать их самостоятельно. cpan
должен сделать тяжелую работу за вас.
Perlbrew может облегчить вам жизнь, если вам не нравится постоянно работать с переменными окружения и с настройками cpan.